Dwukropek JavaScript (operator bind)

Jak wiadomo, istnieje propozycja skrótu dla funkcji .bind(), więc można napisać:

::this.handleStuff

I tak będzie działać w es5:

this.handleStuff.bind(this)

Moje pytanie brzmi: czy będzie można przekazać argumenty w ten sposób?

Mam na myśli sposób napisania tego za pomocą wspomnianego skrótu:

this.handleStuff.bind(this, 'stuff')

To dość powszechny wzorzec w Reaccie, więc miło byłoby go trochę skrócić.

Author: Michał Perłakowski, 2015-07-04

1 answers

Nie. Operator bind (propozycja spec ) występuje w dwóch smakach:

  • Metoda ekstrakcji

    ::obj.method     ≡ obj.method.bind(obj)
    
  • Wywołania "virtual method"

    obj::function    ≡ function.bind(obj)
    obj::function(…) ≡ function.call(obj, …)
    

Żaden z nich nie posiada częściowego zastosowania . Dla tego, co chcesz, powinieneś użyć funkcji strzałki:

(...args) => this.handleStuff('stuff', ...args) ≡ this.handleStuff.bind(this, 'stuff')
 139
Author: Bergi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-19 19:34:24