类数组:是一种相似数组的对象,并提供了一种用于访问原始二进制数据的机制,但不是真正的数组。数组
js 中类数组对象有不少,例如arguments
、 NodeList
、 HTMLCollection
、 jQuery
等app
MDN - JavaScript 类型化数组prototype
length
属性var a = document.getElementsByTagName("div"); a.__proto__; // HTMLCollection {} 属于类数组对象 a.length; // 44
a[0]; // <div id="app">...</div>
a.slice; // undefined
instanceof
操做不属于 Array
a instanceof Array; // false a instanceof Object; // true
Array.prototype.slice.call()code
var arr = Array.prototype.slice.call(a) arr instanceof Array; // true
Array.from()对象
var arr = Array.from(a) arr instanceof Array; // true
a.name = 'div集合';
// 1. 建立空对象 var array_like = {}; // 2. 添加下标属性 array_like[0] = 'a'; array_like[1] = 'b'; // 3. 添加length属性 和 push 属性 array_like.length = 2; array_like.push = Array.prototype.push; // 4. 调用下 array_like.push('c') // 5. 检测 console.log(array_like[2]) // c console.log(array_like.length) // 3 console.log(array_like instanceof Array) // false // 6. 转换为真数组 var arr = Array.prototype.slice.call(array_like); arr instanceof Array; // true