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
.
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/
我正在阅读 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
.
ECMAScript 6
arrow function
introduce, Arrow(=>)
part of thearrow function
syntax.
箭头函数的工作方式与传统的 JavaScript 函数不同。我发现这篇文章解释了与传统函数的不同之处:http://www.nczonline.net/blog/2013/09/10/understanding-ecmascript-6-arrow-functions/