【发布时间】:2021-07-23 00:31:18
【问题描述】:
const arr2 = arr.map(double)
如果我不传递数组项,它是如何工作的?我需要向函数 double 传递一个参数:类似于double(item)。
let arr = [1, 2, 3, 4, 5]
function double(x) {
return x * 2
}
const arr2 = arr.map(double)
const arr3 = arr.map(item => double(item))
console.log("arr2= ", arr2)
console.log("arr3= ", arr3)
输出:
arr2 = [2, 4, 6, 8, 10]
arr3 = [2, 4, 6, 8, 10]
【问题讨论】:
-
double是一个函数语句;因此直接作为回调传递给数组的map方法,该函数将在map的每个迭代步骤中被调用(的实现)map本身负责传递正确的参数,item的当前值,idx,arr到这个回调函数。 -
map在示例一中调用double。在示例二中,map正在调用匿名箭头函数,该函数使用参数调用double。两者都将当前元素作为其第一个参数传递。 -
您自己也不要将参数
item传递给函数item => double(item)。您对此很好,但对double函数感到困惑? -
第二个例子使用了一个箭头函数,它只是将它的单个
item参数转发给double。由于double(item)的调用是作为箭头函数的一部分发生的,所以double(item)的返回值自动成为该箭头函数的返回值。
标签: javascript callback