gpt4 book ai didi

javascript - 为什么 `Array.length` 、 `Function.length` 、 `String.length` 等返回 1?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:17:01 29 4
gpt4 key购买 nike

在昨天教授我的 JavaScript 类(class)时,我和我的学生遇到了一些有趣的功能,我认为这些功能可能值得在一个问题和我得出的答案中捕捉到。

在 Chrome 的 JS 控制台中输入 Array.length 返回 1

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

Every function in JavaScript is actually a Function object. (MDN JS Ref: Function)

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

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

最佳答案

Function.length 本身就是答案:

Specifies the number of arguments expected by the function. MDN JS Ref: Function.length

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

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

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

关于javascript - 为什么 `Array.length` 、 `Function.length` 、 `String.length` 等返回 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13147326/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com