如何调用一个在Json对象中传递其名称的函数?

时间:2009-06-04 11:07:36

标签: javascript json callback

我有一个JSON对象,其中包含一个名为callback的关键元素。

{
"id":34,
"description":"",
"item_id":4,
"callback":"addNew",
"filename":"0000072.doc",
"type":"News",
"ext":"doc",
"size":46592
}

我想调用javascript“addNew”函数。我试过了。

json.callback(json);

但是不起作用。有什么想法吗?

3 个答案:

答案 0 :(得分:12)

假设它是一个全局函数(它不应该是):

window[json.callback](json);

如果你的代码结构合理,你可能会有一个包含JSON可以调用的所有函数的对象。

var myObject = {
  func1: function myObject_func1_method(foo) {
    return 1;
  },
  func2: function myObject_func2_method(foo) {
    return 2;
  }
}

然后你可以:

myObject[json.callback](json);

答案 1 :(得分:9)

不要使用eval,请使用

window[json.callback](json); 

如果该功能在全局范围内。否则使用范围代替窗口。

答案 2 :(得分:-2)

使用eval(json.callback+'()');