我正在使用 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.bar
和 foo['bar']
是等效的。)
关于javascript - JS : Using variable names to call function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4064265/