我有一个函数,其名称存储在一个变量中,我该如何调用它?
var fun_name='foo'
答案 0 :(得分:4)
如果函数在全局空间中可用
window[fun_name]()
如果是对象的成员,则obj[fun_name]()
例如:
var obj = {
foo: function(){}
}
obj[fun_name]()
答案 1 :(得分:1)
你可以使用。
window[fun_name]();
答案 2 :(得分:1)
它也有范围,所以简单
scopeVar[fun_name](args);
或全球
window[fun_name](args);
答案 3 :(得分:0)
您可以使用“评估”功能
这将调用alert(3)
foo = 'alert(3)';
eval(foo);
答案 4 :(得分:-1)
检查一下。 How to execute a JavaScript function when I have its name as a string
或者只是使用如下开关:
switch(fun_name){
case "foo":
foo();
break;
case "foo2":
foo2();
break;
default:
fooDefault();
}