He estado experimentando con ES6 durante un tiempo y acabo de encontrar un pequeño problema.
Realmente me gusta usar las funciones de flecha, y siempre que puedo, las uso.
Sin embargo, ¡parece que no puedes atarlos!
Aquí está la función:
var f = () => console.log(this);
Aquí está el objeto al que quiero vincular la función:
var o = {'a': 42};
Y así es como me uniría f
a o
:
var fBound = f.bind(o);
Y luego solo puedo llamar fBound
:
fBound();
Lo que generará esto (el o
objeto):
{'a': 42}
¡Frio! ¡Encantador! Excepto que no funciona. En lugar de generar el o
objeto, genera el window
objeto.
Entonces me gustaría saber: ¿puedes unir las funciones de flecha? (Y si es así, ¿cómo?)
He probado el código anterior en Google Chrome 48 y Firefox 43, y el resultado es el mismo.
this
de su ámbito principal.