簡體   English   中英

為什么`Array.length`,`Function.length`,`String.length`等返回1?

[英]Why does `Array.length`, `Function.length`, `String.length`, etc return 1?

在昨天教我的JavaScript課程時,我和我的學生遇到了一些有趣的功能,我認為這些功能值得在一個問題和我得到的答案中捕獲。

在chrome控制台Array.length chrome輸入Array.length返回1

同樣, Function.length返回1 這很重要,因為:

JavaScript中的每個函數實際上都是一個Function對象。 (MDN JS參考:功能)

因此, Object.length和可能所有其他本機對象將返回1作為length屬性的值。

那么,最后為什么會發生這種行為呢?

Function.length本身就是答案:

指定函數所需的參數數。 MDN JS Ref:Function.length

當我們編寫Function.length我們要求Function構造Function告訴我們正式命名參數的數量(“可選” - 即非正式 - 參數通過函數體中的arguments屬性訪問)。 因為Function構造Function正好需要1個正式命名參數,所以結果為1

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

functionBody是單個正式命名參數。 因此Function.length1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM