我想这样调用一个函数
redBall(this);
但我想从一个字符串动态构造。我试过类似的方法,但没有用。
var color = 'red';
color+'Ball'(this);
最佳答案
你可以这样做:
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);
您还可以将其与 Jimmy 的回答结合起来并执行以下操作:
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);
关于javascript - 动态构造js函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5602253/