javascript - 解析 $(document).ready(function(){}) 中的函数指针;通过 json 字符串名称

标签 javascript jquery

我的 $(document).ready(...); 中有一个从服务器检索到的 json 对象它有一个字符串,我想将其解析为也在 $(document).ready(...); 中定义的函数所以,例如:

$(document).ready(function{

    $.getJSON(/*blah*/,function(data){/*more blah*/});
    function doAdd(left,right) {
        return left+right;
    }
    function doSub(left,right) {
        return left-right;
    }
});

使用 json 字符串:

{"doAdd":{"left":10,"right":20}}

我想到的一种方法是在加载 json 之前创建函数的关联数组:

var assocArray=...;
assocArray['doAdd'] = doAdd;
assocArray['doSub'] = doSub;

使用 evalwindow[]();不好,因为函数可能有一段时间不会被调用,基本上我想链接/解析但还没有执行。

最佳答案

将您的 JSON 更改为

{method: "doAdd", parameters : {"left":10,"right":20}}

然后做

var method = eval(json.method); 
// This doesn't call it. Just gets the pointer

或者(没试过)

var method = this[json.method]

关于javascript - 解析 $(document).ready(function(){}) 中的函数指针;通过 json 字符串名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5149352/

相关文章:

如果不为空,Javascript 附加到 url

javascript - bootstrap 轮播内的剑道图表

jquery - 使用循环对用作选择器的数组执行操作

javascript - jQuery 使用 id 自动完成多个字段,但不使用 class;如果可能的话使用序列化

javascript - 多语言支持 Cordova 应用程序

javascript - Rails 4 应用程序中的 $.ajax 请求不渲染 View

jquery - 动态添加填充有数据库记录的 <select> 输入

javascript - 通过注释掉 CSS 属性,使用 JavaScript 切换样式属性

javascript - 如何使用 easeljs-0.8.0.js 画线?(createJs)

javascript - 使用具有相同代码的多个文件或仅使用一个文件并区分?