¿Qué significa la función de flecha ''()=>{}'' en Javascript?
ecmascript-6 arrow-functions (2)
Introducción de la
arrow function
ECMAScript 6, parte de la sintaxis de laarrow function
(=>)
.
Las funciones de flecha funcionan de manera diferente a las funciones tradicionales de JavaScript. Este artículo me explica cómo es diferente de la función tradicional: http://www.nczonline.net/blog/2013/09/10/understanding-ecmascript-6-arrow-functions/
Esta pregunta ya tiene una respuesta aquí:
Estaba leyendo la fuente de
ScrollListView
y en varios lugares veo el uso de
() => {}
.
Como en la línea 25,
this.cellReorderThreshold = () => {
var ratio = (this.CELLHEIGHT*this.cellsWithinViewportCount)/4;
return ratio < this.CELLHEIGHT ? 0 : ratio;
};
línea 31,
this.container.addEventListener(''scroll'', () => this.onScroll(), false);
línea 88.
resizeTimer = setTimeout(() => {
this.containerHeight = this.container.offsetHeight;
}, 250);
¿Es esta una forma abreviada de
function
y si difiere de alguna manera, cómo es eso?
Esta es la nueva sintaxis de flecha de ES6.
Se diferencia por el tratamiento de
this
: la
function
obtiene
this
acuerdo con el contexto de
llamada
(semántica tradicional), pero las funciones de flecha mantienen
this
del contexto de
definición
.