你可以做幾件事情:
//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
是危險的,我不要推薦它。
根據您的小提琴
你right
和left
功能已經在一個匿名函數的局部範圍內定義。這意味着它們是而不是部分全局window
對象。你應該使用我上面描述的第二種方法(構建你自己的地圖):
var directions = {
right: function() {
...
},
left: function() {
...
}
...
};
var direction = "right";
directions[direction]();
我想這個,但我得到了以下錯誤; '未捕獲的類型錯誤:對象[對象窗口]沒有方法「方向」' – ACynicalGeek
你有一個叫做方向的函數嗎? –
我有一個叫做right的函數。稱爲方向的變量具有正確的值。我想運行我的功能。 – ACynicalGeek