一尘不染

有关ES6 Arrow功能中“ arguments”的官方信息?

javascript

(() => 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拒绝了,但是我找不到任何支持的信息。

只是在这里寻找官方文档。


阅读 251

收藏
2020-05-01

共1个答案

一尘不染

Chrome,FF和node似乎在这里是错误的,Babel是正确的:

箭头函数arguments在其范围内没有自己的绑定;调用它们时不会创建任何参数对象。

在这里寻找官方文件

Arrow功能表达式求,其功能[有自己的ThisMode集到lexical,这种被称为当声明实例不会创建一个arguments对象。甚至有一个特别的注释(18a)指出“ 箭头函数从不具有参数对象。 ”。

2020-05-01