Javascript 中的箭头函数 '() => {}' 是什么意思?

What does arrow function '() => {}' mean in 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 的 shorthand 吗?如果有任何不同,那是怎么回事?

这是ES6新的箭头语法。它的区别在于this的处理:function根据调用上下文(传统语义)得到一个this,但是箭头函数保留了定义的上下文this.

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

ECMAScript 6 arrow function introduce, Arrow (=>) part of the arrow function syntax.

箭头函数的工作方式与传统的 JavaScript 函数不同。我发现这篇文章解释了与传统函数的不同之处:http://www.nczonline.net/blog/2013/09/10/understanding-ecmascript-6-arrow-functions/