Двойное двоеточие JavaScript (оператор bind)
как вы знаете, есть предложение для ярлык .bind()
функция, поэтому вы можете написать:
::this.handleStuff
и это будет работать так, как в es5:
this.handleStuff.bind(this)
мой вопрос: Можно ли передать аргументы таким образом?
Я имею в виду способ написания этого с вышеупомянутым ярлыком:
this.handleStuff.bind(this, 'stuff')
это довольно распространенный шаблон в React, поэтому было бы неплохо немного сократить его.
1 ответов
нет. The оператор bind (спец предложение) поставляется в двух вариантах:
-
способ извлечения
::obj.method ≡ obj.method.bind(obj)
-
"виртуальный метод" звонки
obj::function ≡ function.bind(obj) obj::function(…) ≡ function.call(obj, …)
ни один из них не имеют частичное применение. Для того, что вы хотите, вы должны использовать функцию стрелки:
(...args) => this.handleStuff('stuff', ...args) ≡ this.handleStuff.bind(this, 'stuff')