2012-09-19 33 views

回答

5

你可以做幾件事情:

//if the function is in the global scope: 

window["myFunction"](); 
//or 
var functionName = "myFunction"; 
window[functionName](); 

或維護自己的地圖:

var functions = { 
    myFunction: function() { 
     ... 
    }, 
    ... 
    myOtherFunction: function() { 
     ... 
    } 
}; 

然後下列任一將工作:

functions.myFunction(); //will work 
functions["myFunction"](); //will also work; 

var functionName = "myFunction"; 
functions[functionName](); //also works 

當然,你可以使用eval

eval(functionName + "()"); 

但是eval是危險的,我不要推薦它。

根據您的小提琴

rightleft功能已經在一個匿名函數的局部範圍內定義。這意味着它們是而不是部分全局window對象。你應該使用我上面描述的第二種方法(構建你自己的地圖):

var directions = { 
    right: function() { 
     ... 
    }, 
    left: function() { 
     ... 
    } 
    ... 
}; 

var direction = "right"; 
directions[direction](); 
+0

我想這個,但我得到了以下錯誤; '未捕獲的類型錯誤:對象[對象窗口]沒有方法「方向」' – ACynicalGeek

+0

你有一個叫做方向的函數嗎? –

+0

我有一個叫做right的函數。稱爲方向的變量具有正確的值。我想運行我的功能。 – ACynicalGeek

相關問題