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

标签 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");
}

我收到错误消息“未捕获的类型错误:对象不是函数”。我在这里缺少什么?

错误行[run]();

谢谢

最佳答案

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

使用window对象访问该函数:

window[run]();

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

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

关于javascript - Ajax 响应字符串作为函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591200/

相关文章:

javascript - 缺少 Express SSL 身份验证功能?

jquery - 使 div 正确对齐

javascript - 我无法编写一个开关来显示和隐藏元素?

使用 activerecord 模型验证器的 Javascript 验证

javascript - 使用 JavaScript 检查多选框中是否已存在选项

javascript - 为什么数组从头到尾重复输入的数据

javascript - 自定义异常。这个未定义

jquery - 从同源 URL 获取页面元素的 CSS 属性值

javascript - 在网页底部和接近顶部之间动态调整元素的大小

javascript - 对 Javascript 构造函数和原型(prototype)感到困惑