3

昨天在教我的 JavaScript 课程时,我和我的学生遇到了一些有趣的功能,我认为这些功能可能值得在一个问题和我得到的答案中记录下来。

Array.length在 chrome 中的 JS 控制台中键入返回1.

同样,Function.length返回1. 这很重要,因为:

JavaScript 中的每个函数实际上都是一个 Function 对象。(MDN JS 参考:函数)

因此,Object.length很可能所有其他本机对象都将并且应该1作为length属性的值返回。

那么,最后为什么会发生这种行为?

4

1 回答 1

9

Function.length本身就是答案:

指定函数期望的参数数量。MDN JS 参考:Function.length

当我们编写时,Function.length我们要求Function构造函数告诉我们正式的命名参数的数量(“可选” - 即非正式的 - 参数通过arguments函数体中的属性访问)。因为Function构造函数需要 1 个正式的命名参数,所以结果是1

new Function ([arg1[, arg2[, ... argN]],] functionBody)

functionBody是单个正式命名参数。因此Function.length1

于 2012-10-30T20:45:49.497 回答