Jak wiesz, jest propozycja skrótu do .bind()
funkcji, więc możesz napisać:
::this.handleStuff
i tak będzie działać w es5:
this.handleStuff.bind(this)
Moje pytanie brzmi: czy będzie można w ten sposób przekazywać argumenty?
Mam na myśli sposób pisania tego za pomocą wspomnianego wcześniej skrótu:
this.handleStuff.bind(this, 'stuff')
To dość powszechny wzorzec w Reakcie, więc dobrze byłoby go trochę skrócić.
javascript
ecmascript-harmony
ecmascript-next
Victor Marchuk
źródło
źródło
Odpowiedzi:
Nie. Operator wiązania ( propozycja specyfikacji ) występuje w dwóch wersjach:
Ekstrakcja metod
wywołania „metody wirtualnej”
obj::function ≡ function.bind(obj) obj::function(…) ≡ function.call(obj, …)
Żaden z nich nie ma częściowego zastosowania . Do tego, co chcesz, powinieneś użyć funkcji strzałki:
(...args) => this.handleStuff('stuff', ...args) ≡ this.handleStuff.bind(this, 'stuff')
źródło