类数组 - [ 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