Посмотрев на this answer Мне стало любопытно, можно ли переназначить addTogether.bind
, чтобы вы могли его вызвать без контекстного аргумента. Некоторые из различных методов, которые я пробовал ниже:Как удалить аргумент контекста .bind()
// these are intended as separate attempts, don't execute all of them sequentially
addTogether.bind = addTogether.bind.bind(addTogether.bind);
addTogether.bind = addTogether.bind.bind(addTogether.bind(addTogether));
addTogether.bind = addTogether.bind.bind(addTogether);
addTogether.bind = addTogether.bind(addTogether);
Мое намерение состоит в том, чтобы позволить этому:
function addTogether(a,b) {
return a+b;
}
// something here to make the following possible
console.log(typeof addTogether.bind(2)); // "function"
console.log(addTogether.bind(2)(3)); // 5
console.log(addTogether(2,3)); // 5
О, дух! Я забыл, что должен был указать два аргумента для '.bind.bind()' –
. Вы понимаете, что можете переключить 'partial' на' bind', и это все равно будет работать. Разве это не значит, что это возможно? Я бы принял это, если вы удалите часть, в которой говорится, что это невозможно. –
@PatrickRoberts: Можно переименовать его в 'bind', да, но это по-прежнему другая функция. Я бы предпочел не перезаписывать свойство '.bind' по тем же причинам, о которых указал Мадара. На самом деле '.partial' даже не является методом, я просто помещал его туда, чтобы присвоить им пространство имен, присвоив его полностью автономной переменной. – Bergi