Ajax响应字符串作为函数名称

时间:2015-04-12 15:35:16

标签: javascript jquery

如果我的字符串与函数名相同,我怎么能调用javascript函数?

我有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");
}

我收到错误消息说'未捕获TypeError:对象不是函数'。我在这里缺少什么?

错误行[run]();

谢谢

1 个答案:

答案 0 :(得分:2)

如果不指定对象,则不能使用括号表示法。使用[run]将被解释为数组文字。

使用window对象访问该功能:

window[run]();

但首先您需要删除()以仅获取函数名称:

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