如何理解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
}]
第二、三還能理解!第一種怎么理解?
我覺得這個問題應(yīng)該從 Function.call和 Function.apply 來入手。這兩個 函數(shù)的方法 功能都是一樣的,都是為了改變 this 的指向。唯一的區(qū)別就是參數(shù)不一樣,apply的第二個參數(shù)必須傳入數(shù)組。
不請自來,這是個好問題,必須回答一下
Array.apply(null, {length: 5}) length
為特殊字段,意思是生成一個長度為5的數(shù)組,由于沒賦值,所以都是undefined
, 如果要賦值,可以這樣
首先需要有個 函數(shù),定義個 iAmArray;
和ES6的Array.from
有點(diǎn)類似, Array.from