我可以使用变量的值来启动函数吗?

可能重复:
调用变量中命名的JavaScript函数

我想使用变量的值作为启动函数的调用,但我不确定它是否可能?

说我有:

function myFunction(){ // Do something } var functionName = "myFunction"; functionName(); // This should run the function named myFunction 

这是可以做到的吗?

你可以做一些事情:

 //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]();