Подтвердить что ты не робот

Что означает функция стрелки '() => {}' в Javascript?

Я читал источник ScrollListView, и в нескольких местах я вижу использование () => {}.

Например, в строке 25,

this.cellReorderThreshold = () => {
    var ratio = (this.CELLHEIGHT*this.cellsWithinViewportCount)/4;
    return ratio < this.CELLHEIGHT ? 0 : ratio;
};

строка 31,

this.container.addEventListener('scroll', () => this.onScroll(), false);

строка 88.

resizeTimer = setTimeout(() => {
    this.containerHeight = this.container.offsetHeight;
}, 250);

Является ли это сокращением для function и если он каким-либо образом отличается, как это?

4b9b3361

Ответ 1

Это новый синтаксис стрелки ES6. Он отличается обработкой this: function получает this в соответствии с вызывающим контекстом (традиционная семантика), но функции стрелок сохраняют this контекста определения.

см. http://tc39wiki.calculist.org/es6/arrow-functions/

Ответ 2

В ECMAScript 6 arrow function введите (=>) часть синтаксиса arrow function.

Функции стрелок работают иначе, чем традиционные функции JavaScript. Я нашел, что эта статья объясняет, как отличается от традиционной функции: http://www.nczonline.net/blog/2013/09/10/understanding-ecmascript-6-arrow-functions/