ES6箭头函数是否有自己的参数?

Ami*_*sta 31 javascript ecmascript-6 arrow-functions

我不知道箭头函数是否绑定arguments到词法范围.

看一下这个例子(可以使用相同的概念this):

var b = function() { return () => console.log(arguments); };
b(1,2,3)(4,5,6); // different result of chrome vs FF.
Run Code Online (Sandbox Code Playgroud)

当我在Chrome上运行时,我得到了[1,2,3],但在Firefox上,我得到了[4,5,6].这是怎么回事?

Ori*_*iol 23

规格:

任何参照arguments,super,this,或new.target的内 ArrowFunction必须解析为在词法封闭环境的结合.

因此,正确的答案是[1,2,3].Firefox已修复版本43中的问题(错误889158).


JMM*_*JMM 9

不,箭头的功能没有自己的arguments,this,super,或new.target.

请参阅14.2.16运行时语义中的注释:评估:

一个ArrowFunction不适用于定义本地绑定arguments,super,this,或new.target.任何参照arguments,super,this,或new.target的内ArrowFunction必须解析为在词法封闭环境的结合.通常,这将是Function Environment一个直接封闭的功能.