function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
Run Code Online (Sandbox Code Playgroud)
但
var bar = x => console.log(arguments)
Run Code Online (Sandbox Code Playgroud)
以相同方式调用时出现以下错误:
Uncaught ReferenceError: arguments is not defined
Run Code Online (Sandbox Code Playgroud) (() => console.log(arguments))(1,2,3);
// Chrome, FF, Node give "1,2,3"
// Babel gives "arguments is not defined" from parent scope
Run Code Online (Sandbox Code Playgroud)
根据Babel(以及我可以告诉TC39的初步建议),这是"无效的",因为箭头函数应该使用其父作用域作为参数.我能找到的唯一信息与此相矛盾的是一条评论说这被TC39拒绝,但我找不到任何支持这一点.
只是在这里寻找官方文档.