【发布时间】:2023-01-12 16:44:25
【问题描述】:
console.log([1 , 2, 3 , 4 , 5].map((acc = 0 , num => acc += num)));
// output : [1, 3, 6, 10, 15]
我知道此处已将闭包应用于此代码,但不知道它是如何逐步工作的。我想想象一下。
我们知道地图有这个签名,
array.map(function(currentValue, index, arr), thisValue)
通过这个你能解释一下上面的代码吗?
【问题讨论】:
-
这仅在您未处于严格模式或已在某处声明
acc时有效。这是使用grouping operator,结合comma operator,首先将一个值赋给acc,然后将回调传递给map。 -
@pilchard 它的工作好朋友。请再次检查jsfiddle.net/peyv13un
-
@pilchard 你错了,这是使用 comma operator 的有效 javascript
-
@Samathingamajig 我详细阐述了我的声明。在严格模式下无效
标签: javascript node.js arrays closures