簡體   English   中英

如何調用一個在Json對象中傳遞其名稱的函數?

[英]How to invoke a function, whose name is passed in Json object?

我有一個JSON對象,其中包含一個名為callback的關鍵元素。

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

我想調用javascript“addNew”函數。 我試過了。

json.callback(json);

但是不起作用。 任何想法?

假設它是一個全局函數(它不應該是):

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);

不要使用eval,請使用

window[json.callback](json); 

如果函數在全局范圍內。 否則使用范圍而不是窗口。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM