是否可以这样执行功能:
this.values(value);
不
this.values[value]();
this.values[value].call();
如果是这样,怎么样?还是其他任何方法?谢谢。
这是我的代码:
write: function(value) {
this.values = {
"red": function() { /* do something */ },
"orange": function() { /* do something */ },
"blue": function() { /* do something */ }
};
return this.values[value]();
}
write("red");
答案 0 :(得分:4)
可能你可以在里面使用var:
write: function(value) {
var values = {
red: function() { /* do something */ },
orange: function() { /* do something */ },
blue: function() { /* do something */ }
};
return values[value];
}
返回函数而不是在里面运行它。然后叫它。
答案 1 :(得分:1)
没有。但目前它的做法并没有任何问题。
答案 2 :(得分:0)
您可以随时执行此操作:
write: function(value) {
switch(value){
case "red":
/* do something */
break;
case "orange":
/* do something */
break;
case "blue":
/* do something */
break;
default:
/* do something */
break;
}
}
write("red");