【发布时间】:2017-06-03 13:34:23
【问题描述】:
function foo(x) {
console.log(arguments)
} //foo(1) prints [1]
但是
var bar = x => console.log(arguments)
以相同方式调用时会出现以下错误:
Uncaught ReferenceError: arguments is not defined
【问题讨论】:
-
不是匿名函数,而是没有
arguments对象的箭头函数。因此,您的问题是做出不正确的陈述/假设。使用function关键字声明的常规匿名函数具有arguments对象就好了。 -
关于语言设计决策的问题通常不适合 Stack Overflow。
-
@FelixKling。对不起,我对你的想法持相反的看法。这个问题的答案有助于消除许多其他人的“问号”。我相信提出一个看起来“不适合”Stack Overflow 的问题总是不错的。
-
@daiyanze:这与问题本身无关,而与谁能回答问题有关。特别是对于 JavaScript,语言设计问题只能由实际参与设计过程的人或密切关注它的人来回答。这些人并不多,在 Stack Overflow 上的人更少。通过直接与相关人员联系,您可能会更成功地获得答案(如果对更多人感兴趣,可以在此处发布一个自我回答的问题)。
-
我也支持@daiyanze。仅考虑到这个问题的活动,很明显这是一个很好的地方。
标签: javascript lambda ecmascript-6 arguments anonymous-function