首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数javascript的字符串

函数javascript的字符串
EN

Stack Overflow用户
提问于 2012-01-19 07:05:47
回答 5查看 4.2K关注 0票数 3

假设我正在使用一些html5数据字符,并且我想知道当某个div标记完成某些操作时要调用哪个函数。

所以我的数据看起来就像

代码语言:javascript
复制
data-callback='jsAPI.aSubset.desiredFunction'

如何将该回调(字符串)转换为我想要调用函数。一个简单的全局函数,例如

代码语言:javascript
复制
data-callback='_myfunction'

<script>
    function _myfunction() { alert("yes my function"); }
    $("div").click(function() {
        var fn = $(this).data("callback");
        if (typeof fn === 'function') {
            fn();
        }
    })
</script>

但是我该如何使用前一个呢jsAPI.aSubset.desiredFunction谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-01-19 07:11:54

只有在没有.链的情况下,才能使用方括号。

试着这样做:

代码语言:javascript
复制
var elms = fn.split(".");
var curr = window;
var nxt;
while(nxt = elms.shift()) curr = curr[nxt];
curr();
票数 2
EN

Stack Overflow用户

发布于 2012-01-19 07:21:00

听起来像是可怕的eval()的一个很好的用例。

我会这样做:

代码语言:javascript
复制
var fnString = "jsAPI.aSubset.desiredFunction";
var fn = eval(fnString);
if (typeof(fn) === "function") {
    fn.apply();
票数 4
EN

Stack Overflow用户

发布于 2012-01-19 07:08:54

使用方括号...

代码语言:javascript
复制
jsAPI.aSubset[fn]();

所以..。

代码语言:javascript
复制
if (typeof jsAPI.aSubset[fn] === 'function') {
    jsAPI.aSubset[fn]();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8918838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档