ACy*_*eek 1 javascript variables jquery function
可能重复:
调用变量中指定的JavaScript函数
我想使用变量的值作为启动函数的调用,但我不确定它是否可能?
说我有:
function myFunction(){
// Do something
}
var functionName = "myFunction";
functionName(); // This should run the function named myFunction
Run Code Online (Sandbox Code Playgroud)
这是可以做到的吗?
你可以做一些事情:
//if the function is in the global scope:
window["myFunction"]();
//or
var functionName = "myFunction";
window[functionName]();
Run Code Online (Sandbox Code Playgroud)
或者维护自己的地图:
var functions = {
myFunction: function() {
...
},
...
myOtherFunction: function() {
...
}
};
Run Code Online (Sandbox Code Playgroud)
然后,以下任一方法都可以:
functions.myFunction(); //will work
functions["myFunction"](); //will also work;
var functionName = "myFunction";
functions[functionName](); //also works
Run Code Online (Sandbox Code Playgroud)
当然,你可以使用eval:
eval(functionName + "()");
Run Code Online (Sandbox Code Playgroud)
但是eval很危险,我不推荐它.
基于你的小提琴
您right和left函数已在匿名函数的本地范围内定义.这意味着它们不是全局window对象的一部分.你应该使用我上面描述的第二种方法(构建你自己的地图):
var directions = {
right: function() {
...
},
left: function() {
...
}
...
};
var direction = "right";
directions[direction]();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |