我将此函数调用作为字符串传递:
var dcall = "tumbsNav(1)";
是否可以像exec在SQL中一样动态地执行此操作?
exec(dcall)
最佳答案
无论您存储在哪里
var dcall = "tumbsNav(1)";
您可以改为存储
var dcall = function() {
return tumbsNav(1);
};
无论您在哪里打电话,都不必打电话
eval(dcall);
您可以改为致电
dcall();
唯一不起作用的情况是,在调用
tumbsNav
时未定义var func = ...
的情况。然后,您将必须存储字符串。如果字符串完全在您的控制之下,那么就没有安全漏洞,但是请注意@Porco提到的所有问题正如Kolink所提到的,如果为
tumbsNav
分配包装了调用tumbs的匿名函数时未定义,则我的示例不会引起问题。仅当示例如下时,以上注释才有意义:var dcall = tumbsNav, darg = 1;
// later in the code, you can call
dcall(darg) ;
关于javascript - 使用jQuery执行动态传递的函数调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10729667/