2015-04-12 88 views
0

如果我具有與函數名相同的字符串,我可以如何調用javascript函數?作爲函數名稱的Ajax響應字符串

我有Ajax請求和響應:

{"message":"Updated","function":"UpdateClientsData()"} 

Submit.done(function (response){     
    var resultArray = JSON.parse(response); 

    $.each(resultArray, function(key, value) {  

     if(key == "function") 
     { 
      var run = value; 
      [run]();       
     }     
    }); 

function UpdateClientsData() 
{ 
    console.log("aaaaa"); 
} 

我得到錯誤信息說「遺漏的類型錯誤:對象不是一個函數」。我在這裏錯過了什麼?

錯誤行[run]();

謝謝

+0

哪條線是錯誤訊息嗎? – Zak

+0

「Submit」被定義在哪裏? – Zak

+0

它只是一個snipet的代碼一切正常 – Dainius

回答

2

你不能沒有指定對象用括號標記。使用[run]將被解釋爲數組文字。

使用window對象訪問功能:

window[run](); 

但首先,你需要刪除()只得到函數名稱:

var run = value.replace('()', ''); 
+0

謝謝!我會盡可能標記答案 – Dainius