我在Javascript中查看了一些内容。当我进入call()函数时,我在mozilla js developer page上看了一遍:
语法:
fun.call(thisArg[, arg1[, arg2[, ...]]])
我理解这个函数是做什么以及它是如何运作的,但究竟是什么语法试图说?为什么在那个括号后面有逗号?
[,
同样当我查找reduce()函数时,我理解它是如何工作的,但语法显示了这一点:
arr.reduce(callback[, initialValue])
这不应该像arr.reduce(callback,initialvalue)那样吗?
作为一个菜鸟,语法让我相信回调是一个数组,它有一个空的第一个元素和一个名为initialValue的第二个元素。有什么地方我可以阅读这个语法,以便它有意义,或者某个人可以提供一些清晰度吗?
编辑:回调是指一个函数是吗?那么为什么回调[]而不是回调()?
答案 0 :(得分:5)
[...]
表示里面的内容是可选的。例如,arr.reduce(callback[, initialValue])
可以是arr.reduce(callback)
或arr.reduce(callback, initialValue)
。
逗号就在那里意味着如果你要包含第二个参数,你必须加上逗号。
答案 1 :(得分:2)
这是一个文档约定,而不是实际的JS语法。
方括号表示该参数是可选的。
省略号表示任何数量的参数可以去那里。
fun.call(thisArg[, arg1[, arg2[, ...]]])
意味着您可以说:
fun.call(foo);
fun.call(foo, 1);
fun.call(foo, 1, 2);
fun.call(foo, 1, 2, 3);
fun.call(foo, 1, 2, 3, 4);
fun.call(foo, 1, 2, 3, 4, 5);
等
arr.reduce(callback[, initialValue])
意味着你可以使用dsay:
arr.reduce(foo);
或
arr.reduce(foo, bar);
...但不
arr.reduce(foo, bar, baz);