(() => console.log(arguments))(1,2,3);
// Chrome, FF, Node give "1,2,3" // Babel gives "arguments is not defined" from parent scope
根据Babel的说法(从我可以告诉TC39的最初建议),这是“无效的”,因为箭头函数应该使用其父作用域作为参数。我唯一能发现与这矛盾的信息是一条评论说它被TC39拒绝了,但是我找不到任何支持的信息。
只是在这里寻找官方文档。
Chrome,FF和node似乎在这里是错误的,Babel是正确的:
箭头函数arguments在其范围内没有自己的绑定;调用它们时不会创建任何参数对象。
arguments
在这里寻找官方文件
Arrow功能表达式求,其功能[有自己的ThisMode集到lexical,这种被称为当声明实例不会创建一个arguments对象。甚至有一个特别的注释(18a)指出“ 箭头函数从不具有参数对象。 ”。
lexical