У меня есть код (внутри одного объекта)
onclick: this._addX.bind(this)
а затем внутри другого объекта
onclick: this._addY.bind(this)
Теперь _addX () и _addY практически идентичны, за исключением того, что оба они в конечном итоге вызывают (по событию click) функцию с различными значениями аргументов, например, _addX вызывает foo ('x') и _addY вызывает foo ('y' ). Итак, я попробовал:
onclick: this._add.bind(this,'x')
и
onclick: this._add.bind(this,'y')
в двух объектах. И, конечно, я изменил _адд, чтобы принять аргумент.
Во время выполнения, когда вызывается _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
},