我有代码(在一个对象内)
onclick: this._addX.bind(this)
,然后在另一个对象内
onclick: this._addY.bind(this)
现在,_addX() 和 _addY 几乎相同,除了它们最终都调用(在单击事件上)具有不同参数值的函数,例如 _addX 调用 foo('x') 和 _addY 调用 foo('y')。所以我尝试了:
onclick: this._add.bind(this,'x')
并
onclick: this._add.bind(this,'y')
在两个对象中。当然,我更改了 _add 以接受一个论点。
在运行时,当 _add 被调用时,它看不到任何传入的参数!我摸索了不同的语法,但没有任何效果。有任何想法吗?原始语法工作正常(没有参数),但迫使我复制一个只有一行不同的大函数,这让我很痛苦。提前致谢。
_add: function(which) {
var me = this;
var checkFull = function(abk) {
if (abk.isFull) {
alert("full");
} else {
alert(which); // which is always undefined here!
}
};
getAddressBook(checkFull); //checkFull is a fn called by getAddressBook
},