JavaScript doble dos puntos (operador bind)


Como sabes, hay una propuesta para un atajo para la función .bind(), por lo que puedes escribir:

::this.handleStuff

Y funcionará así en es5:

this.handleStuff.bind(this)

Mi pregunta es: ¿será posible pasar argumentos de esta manera?

Me refiero a una forma de escribir esto con el atajo antes mencionado:

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

Es un patrón bastante común en React, por lo que sería bueno acortarlo un poco.

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

1 answers

No. El operador de enlace ( spec proposal ) viene en dos sabores:

  • Método de extracción

    ::obj.method     ≡ obj.method.bind(obj)
    
  • Llamadas"método virtual"

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

Ninguno de ellos cuenta con aplicación parcial. Para lo que quieres, debes usar una función de flecha:

(...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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-19 19:34:24