如何调用名称存储在变量中的函数?

如何调用名称存储在变量中的函数?

问题描述:

我有一个函数的名字存储在一个变量中,我怎样才能调用它?如何调用名称存储在变量中的函数?

var fun_name='foo' 

如果如果函数在全局空间

window[fun_name]() 

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

例:

var obj = { 
    foo: function(){} 
} 
obj[fun_name]() 

你可以做到这一点使用。

window[fun_name](); 

也会有范围,所以干脆

scopeVar[fun_name](args); 

,或者如果全球

window[fun_name](args); 

您可以使用 “EVAL” 功能

这将呼叫警报(3 )

foo = 'alert(3)'; 
eval(foo); 

看看这个。 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();
}