類數組 - [ Array-like ] : objectsnode
1. what's Array-like數組
類數組和數組很像,可是數組的不少方法卻不能用,這就很尷尬了~spa
像 arguments、nodelist 等這些數據有序集合,有長度和下標等屬性,但卻不是 Array. 這就是所謂的 Array-like(類數組/僞數組)。對於 Array-like 咱們能夠用跨原型鏈來操做,eg :Array.prototype.slice.call(arguments, 0); 這也是把 Array-like 轉化成 Array 的方法哦。prototype
2. 本身構造 Array-like 對象
就是添加 Array 的原生方法到 本身建立的 Object 裏。blog
若是不給 a 添加 length 屬性。push 的時候會把 a[0] 和 a[1] 覆蓋掉。原型鏈
3. 如何判斷是否是 Array原型
typeof去判斷數組獲得的結果是 ‘object’,因此不少 LIB 都採用了 duck typing(鴨子類型檢測)的方式,它的判斷條件是: 當對象的 length 屬性是一個數字,而且 splice 屬性是一個 function, 那麼這個對象就是數組。io