javascript - JS : Using variable names to call function

标签 javascript jquery json function variables

我正在使用 jQuery。我有一个应用程序,它向服务器发出 ajax 请求,并使用 JSON 进行响应。

在某些情况下,服务器的响应将指示要调用的 JS 函数的名称

{"responseType":"callback", "callback":"STUFF.TestCallback","callbackData":"this is in the callback"}

如果响应类型是“回调”,如上所述,JSON 将传递给函数来处理此响应类型。 (var“response”包含上面的 JSON)

STUFF.callback = function(response){
    if(typeof response.callback =='function'){
        console.log("All Good")
        response.callback(response);
    }else{
        console.log("Hmm... Cant find function",response.callback );
    }
}


STUFF.TestCallBack = function(data){
    alert("it worked"); 
}

但是当我这样做时,我收到错误“response.callback 不是函数”。

任何关于为什么这不起作用以及如何正确执行此操作的评论将不胜感激。

最佳答案

字符串是字符串,而不是函数。

response.callback() 不起作用,因为它与 "STUFF.TestCallback"() 相同,而不是 STUFF.TestCallback()

您可能希望数据结构更像"callback": "TestCallback",然后执行以下操作:

STUFF[response.callback](response);

这里您使用 String 来访问 STUFF 的属性。 (foo.barfoo['bar'] 是等效的。)

关于javascript - JS : Using variable names to call function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4064265/

相关文章:

javascript - jQuery Mobile 中的页面更改后,事件不再可用

asp.net - 如何将我的模型数据(列表)与另一个 View 模型数据(列表)映射 MVC asp.net

javascript - 使用 Javascript 打印 JSON 数据

javascript - JS 对象数组,按时间戳对值进行分组

javascript - 使用 Javascript 查找给定字符串中一系列出现的多个标点符号

javascript - 如何在 angularjs 1.3 中将表单中的特定字段设置为脏

javascript - CSS DOM Traversal 优于 JavaScript DOM Traversal?

jquery - 完整日历事件点击手机

jquery - 这个在 jQuery 里怎么说?

python - 使用 Django 创建一个 jSON 数组