function (type, a, b) {
var types = {
'add' : this.add(a,b),
'subtract' : this.subtract(a,b),
'multiply' : this.multiply(a,b)
};
if(types[type])
return types[type];
}
这可能很简单,但我似乎无法弄明白。我想要一个字符串映射到函数引用(参数预先填充),如果类型有效,我想在地图中调用指定的函数。
这个设置有效,但它实际上是在初始化数组时调用方法,这不是我想要的。我只想在类型有效时调用该函数。我只想在设置函数时保留对我想要进行的函数调用的引用。这可能吗?感谢。
答案 0 :(得分:4)
看起来你想要:
function (type, a, b) {
var types = {
'add' : this.add, // assign reference
'subtract' : this.subtract,
'multiply' : this.multiply
};
if(types[type])
return types[type](a, b); // call function
}
但你也可以完全避免创建对象:
function (type, a, b) {
if(['add', 'subtract', 'multiply'].indexOf(type) > -1)
return this[type](a, b);
}