Usar las funciones de flecha de ES6 con this
enlace léxico es genial.
Sin embargo, me encontré con un problema hace un momento al usarlo con un enlace de clic típico de jQuery:
class Game {
foo() {
self = this;
this._pads.on('click', function() {
if (self.go) { $(this).addClass('active'); }
});
}
}
Usando una función de flecha en su lugar:
class Game {
foo() {
this._pads.on('click', () => {
if (this.go) { $(this).addClass('active'); }
});
}
}
Y luego $(this)
se convierte a cierre de tipo ES5 (self = this).
¿Es una forma de hacer que Traceur ignore "$ (this)" para el enlace léxico?
.on()
que de hecho tiene unthis
valor útil para usted. Para mí, es mucho más clarothis
referirse al objetivo del evento que tener que pasar el evento y encontrar el objetivo manualmente. No he jugado mucho con las funciones de flecha, pero parece que sería confuso ir y venir con funciones anónimas.