如何理解Array.apply(null, {length:5})的{length:5}?
我測試過
Array.apply(null, {length:5})//返回[undefined, undefined, undefined, undefined, undefined]
Array.apply(null, [{length:5}])和Array({length:5})返回的結(jié)果是一樣的,為
[[object Object] {
length: 5
}]
第二、三還能理解!第一種怎么理解?
這里不用管this,下面是正常調(diào)用它的三種方式:
所以,Array.apply(null, { length: 5})
相當(dāng)于Array(undefined, undefined, undefined, undefined, undefined)
實際 這個 和 Array 沒有任何關(guān)系,只是碰巧 你使用 Array 時遇到了。
apply方式調(diào)用時,估計是一個小bug,只要是 Object,還有l(wèi)ength,它就當(dāng)作數(shù)組處理了,實際和 Array 沒有任何關(guān)系,任何函數(shù)都會這樣。
apply()
的第一個參數(shù)是對象,第二個參數(shù)是數(shù)組,作為參數(shù)列表。
{length: 5}
理解為Array like
,即類數(shù)組對象(包含length
屬性)。