我总是想知道[,thisArg]之类的东西的含义

时间:2019-06-13 07:36:27

标签: javascript

有时候我会在MDN中学习Javascript代码,但我不明白[,thisArg]的含义是什么... 例如

arr.map(callback(currentValue[, index[, array]])[, thisArg])

在这种情况下,我知道需要有回调函数。但是方括号是什么?为什么在前面没有东西的情况下他们需要逗号?

1 个答案:

答案 0 :(得分:1)

这意味着括号中的内容是可选参数。如果确实使用其他可选参数,则需要用逗号将其与上一个参数分开。

符号

arr.map(callback(currentValue[, index[, array]])[, thisArg])

也许更容易理解为

arr.map(
  callback(currentValue[, index[, array]])
  [, thisArg]
)

表示回调可以接受1、2或3个参数,而.map则将回调作为第一个参数,并且还可以选择接受第二个参数(thisArg)。

正如Kaiido所指出的,在Array.prototype.map的特定情况下,currentValue实际上也是可选的,使用.map而没有使用 any 的参数:

const arr = [3, 4];
const newArr = arr.map(() => 999);
console.log(newArr);