0

我有一个名称存储在变量中的函数,我该如何调用它?

var fun_name='foo'
4

5 回答 5

4

如果 if 函数在全局空间中可用

window[fun_name]()

如果是对象的成员,那么obj[fun_name]()

前任:

var obj = {
    foo: function(){}
}
obj[fun_name]()
于 2013-05-01T05:11:43.977 回答
1

您可以使用它来做到这一点。

window[fun_name]();
于 2013-05-01T05:12:41.837 回答
1

它也将有范围,所以很简单

scopeVar[fun_name](args);

或者如果是全局的

window[fun_name](args);
于 2013-05-01T05:13:19.433 回答
0

您可以使用“评估”功能

这将调用 alert(3)

foo = 'alert(3)';
eval(foo);
于 2013-05-01T05:13:25.553 回答
-1

Check this out. How to execute a JavaScript function when I have its name as a string

Or simply use a switch like follows:

switch(fun_name){
case "foo":
foo();
break;
case "foo2":
foo2();
break;
default:
fooDefault();
}

于 2013-05-01T05:19:22.997 回答