我有如下箭头功能
if(rowCheckStatuses.reduce((a, b)=
rowcheckstatus
是1和0的数组,此箭头函数将它们相加生成一个数字。此数字用作布尔值,以确定数组中是否至少有一个“1”。
问题是,我真的不明白箭头函数是如何工作的,我的IDE认为这是错误的语法,并拒绝检查我文档的其余部分是否有语法错误。
如何将其转换为常规函数以缓解这两个问题?
用常规函数替换箭头函数通常没有问题:
var f = x => y;
var g = function(x) { return y; }
或者,在您的具体示例中:
rowCheckStatuses.reduce((a, b) => a + b, 0);
rowCheckStatuses.reduce(function(a, b) { return a + b; }, 0);
但是,要注意例外情况:
箭头函数不绑定此值。因此,在箭头函数中访问
this
可能会返回封闭执行上下文的this
的值:
function MyClass() {}
MyClass.prototype.f = () => this;
MyClass.prototype.g = function() { return this; }
myClass = new MyClass();
console.log(myClass.f()); // logs `Window`
console.log(myClass.g()); // logs `myClass`
您可以将其重构为:
if( rowCheckStatuses.reduce(function(a, b){return a + b}, 0)
初始累加器不是必需的(除非您期望数组有时是空的),它可以是:
if( rowCheckStatuses.reduce(function(a, b){return a + b})
这个数字充当布尔值来确定数组中是否至少有一个“1”
使用它可能更快(更清晰):
if( rowCheckStatuses.some(function(a){return a == 1}))
如果RowCheckStatus中有任何1,则返回true,并在遇到1时立即返回。另一种选择是indexOf:
if( rowCheckStatuses.indexOf(1) != -1)
有很多选择。
箭头函数通常可以通过替换
(<args>) => <body>
与
function(<args>) { return <body>; }
所以你的会是
rowCheckStatuses.reduce(function(a, b) { return a + b; }, 0)
这条规则也有例外,因此,如果您想了解所有差异,请仔细阅读箭头函数,这一点很重要。您还应该注意,箭头函数有一个词法this
。
本文向大家介绍JavaScript中的常规函数与箭头函数?,包括了JavaScript中的常规函数与箭头函数?的使用技巧和注意事项,需要的朋友参考一下 常规函数与箭头函数 一个箭头函数来简洁编写代码。常规 函数和箭头 函数的工作方式相似,但是它们之间存在一些差异。让我们简要地讨论一下这些差异。 箭头函数的语法 正则函数的语法 “ this”关键字的用法 它不能在箭头功能中使用“ this”
不鼓励将箭头函数(“lambdas”)传递给 Mocha。Lambdas词法绑定 this,无法访问 Mocha 上下文。例如,以下代码将失败: describe('my suite', () => { it('my test', () => { // should set the timeout of this test to 1000 ms; instead will fail thi
ES6标准新增了一种新的函数:Arrow Function(箭头函数)。 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 在继续学习箭头函数之前,请测试你的浏览器是否支持ES6的Arrow Function: 'use strict'; ---- var f
箭头函数: 正规函数 这两个结果应该是相同的,但是看起来像上面定义的arrowFunc考虑第一个arg列表,而normalFunc考虑第二组arg列表。
新的“胖箭头”符号还可以用更简单的方式来定义匿名函数。 请看下面的例子: console.log(x); incrementedItems.push(x+1); }); 计算一个表达式并返回值的函数可以被定义更简单: 下面代码与上面几乎等价: incrementedItems = items.map(function (x) { return x+1; 让我们在 验
本文向大家介绍ECMAScript6的新特性箭头函数(Arrow Function)详细介绍,包括了ECMAScript6的新特性箭头函数(Arrow Function)详细介绍的使用技巧和注意事项,需要的朋友参考一下 箭头函数是ECMAScript 6最受关注的更新内容之一。它引入了一种用「箭头」(=>)来定义函数的新语法,它…它碉堡了~。箭头函数与传统的JavaScript函数主要区别在于以下