如何调用以下内容?
var ccall="search.clearMultiSelect";
我尝试了以下方法:
window[ccall]();
ccall();
两者都不起作用(我明白为什么)。我能够通过 eval 实现它,但是有没有其他不使用 eval 的方法?
我不能拆分字符串或操作字符串,除了在开头或结尾添加一些东西。
基本上,服务器在其响应中包含操作成功时要执行的函数的名称,在本例中如上所示。
最佳答案
window[ccall]()
不会工作,因为 window 不包含名为“search.clearMultiSelect”的函数。如果您可以使用拆分,请尝试类似的操作:
window[ccall.split('.')[0]][ccall.split('.')[1]]();
对于深度大于 2 的函数,可以遍历 split('.')
数组:
var f = window;
var ccallArray = ccall.split('.');
for (var i = 0; i < ccallArray.length; i++){
f = f[ccallArray[i]];
}
f();
关于javascript - 如何执行名称为字符串的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254575/