为什么箭头函数没有参数数组?
2022-08-30 05:38:32
function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
但
var bar = x => console.log(arguments)
以相同的方式调用时,会给出以下错误:
Uncaught ReferenceError: arguments is not defined
function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
但
var bar = x => console.log(arguments)
以相同的方式调用时,会给出以下错误:
Uncaught ReferenceError: arguments is not defined
箭头函数没有这个,因为类似数组的对象是一开始就解决的方法,ES6已经用一个参数解决了这个问题:arguments
rest
var bar = (...arguments) => console.log(arguments);
arguments
绝不是在这里保留的,而只是选择的。您可以随意调用它,并且可以将其与正常参数结合使用:
var test = (one, two, ...rest) => [one, two, rest];
您甚至可以走另一条路,由这个花哨的应用程序说明:
var fapply = (fun, args) => fun(...args);