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

Ser*_*Amo 4 javascript json callback

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

{
"id":34,
"description":"",
"item_id":4,
"callback":"addNew",
"filename":"0000072.doc",
"type":"News",
"ext":"doc",
"size":46592
}
Run Code Online (Sandbox Code Playgroud)

我想调用javascript"addNew"函数.我试过了.

json.callback(json);
Run Code Online (Sandbox Code Playgroud)

但是不起作用.任何的想法?

Que*_*tin 12

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

window[json.callback](json);
Run Code Online (Sandbox Code Playgroud)

如果您的代码结构良好,您可能会有一个包含JSON可以调用的所有函数的对象.

var myObject = {
  func1: function myObject_func1_method(foo) {
    return 1;
  },
  func2: function myObject_func2_method(foo) {
    return 2;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以:

myObject[json.callback](json);
Run Code Online (Sandbox Code Playgroud)


Fab*_*ger 9

不要使用eval,请使用

window[json.callback](json); 
Run Code Online (Sandbox Code Playgroud)

如果函数在全局范围内.否则使用范围而不是窗口.