2013-04-11 52 views

回答

2

如果全局定义了A,则定义为window["A"]()。但是,没有必要在javascript中这样做。只要传递函数本身,而不是它的名字:

function foo() {...} 

// BAD 
function callFunc(someName) { window[someName]() } 
callFunc("foo") 

// GOOD 
function callFunc(someFunc) { someFunc() } 
callFunc(foo) 
+0

或你的对象[functionname]() – jbduzan 2013-04-11 09:09:04

+0

谢谢。有用... – Dhwani 2013-04-11 09:15:13

2

像这样:

window[varName]() 

假设它在全球范围内

如果你有

function A() {} 
function B() {} 

那么你就可以做

function C(parm) { 
    parm(); 
} 

如果你C(A)调用或C(B)

DEMO

2

您可以将功能分配给一个对象的属性。然后在你的执行函数中,通过给定传递给函数的参数的名称来引用属性。

var myFuncs = { 
    a: function(){ 
    alert("Hello"); 
    }, 
    b: function(){ 
    alert("Goodbye"); 
    } 
}; 

function execute(name){ 
    myFuncs[name](); 
} 

execute("a"); 
execute("b"); 

工作实例http://jsfiddle.net/ud6BS/

相关问题