2013-04-11 51 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/

相關問題