function的length,就是第一個(gè)具有默認(rèn)值之前的參數(shù)個(gè)數(shù)。
一個(gè)擁有 length 屬性和若干索引屬性的對(duì)象就可以被稱為類數(shù)組對(duì)象,類數(shù)組對(duì)象和數(shù)組類似,但是不能調(diào)用數(shù)組的方法。常見的類數(shù)組對(duì)象有 arguments 和 DOM 方法的返回結(jié)果,還有一個(gè)函數(shù)也可以被看作是類數(shù)組對(duì)象,因?yàn)樗?length 屬性值,代表可接收的參數(shù)個(gè)數(shù)。
在函數(shù)的形參中,還有剩余參數(shù)這個(gè)東西,那如果具有剩余參數(shù),會(huì)是怎么算呢?
function fn1(name, ...args) {}
console.log(fn1.length) // 1
可以看出,剩余參數(shù)是不算進(jìn)length的計(jì)算之中的。
所以,123['toString'].length + 123 = ?的答案是124
總結(jié)
length 是函數(shù)對(duì)象的一個(gè)屬性值,指該函數(shù)有多少個(gè)必須要傳入的參數(shù),即形參的個(gè)數(shù)。形參的數(shù)量不包括剩余參數(shù)個(gè)數(shù),僅包括第一個(gè)具有默認(rèn)值之前的參數(shù)個(gè)數(shù)

浙公網(wǎng)安備 33010602011771號(hào)