我想以这种方式调用函数
redBall(this);
Run Code Online (Sandbox Code Playgroud)
但我想从一个字符串动态构造.我尝试过类似的东西,但它不起作用.
var color = 'red';
color+'Ball'(this);
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
var ballFunctions = {
redBall: function(obj) {
alert("Hi, I'm a red ball");
},
blueBall: function(obj) {
alert("Hi, I'm a blue ball");
}
};
color = "red";
ballFunctions[color + "Ball"](this);
color = "blue";
ballFunctions[color + "Ball"](this);
Run Code Online (Sandbox Code Playgroud)
function ball(color, obj) {
ballFunctions[color + "Ball"](obj);
// Or use the window object if your funcs are in the global namespace like Cameron said
// window[color + "Ball"](obj);
}
color = "red";
ball(color, this);
Run Code Online (Sandbox Code Playgroud)
下标隐式window对象:
window[color + 'Ball'](this)
Run Code Online (Sandbox Code Playgroud)
你的例子试图调用字符串'Ball'(因为字符串不可调用,这没有意义),然后将结果连接起来color- 不完全是你想要的.
| 归档时间: |
|
| 查看次数: |
916 次 |
| 最近记录: |