У меня есть код (внутри одного объекта)
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
},