- //5.element.childNodes 返回元素的一个子节点的数组 < br>
- console.log(document.body.childNodes); // NodeList.
NodeList 对象在某些方面和数组非常相似, 看上去可以直接使用从 Array.prototype 上继承的方法. 然而, 除了 forEach 方法, NodeList 没有这些类似数组的方法.
JavaScript 的继承机制是基于原型的. 数组元素之所以有一些数组方法 (比如 forEach 和 map), 是因为它的原型链上有这些方法, 如下:
myArray --> Array.prototype --> Object.prototype --> null (想要获取一个对象的原型链, 可以连续的调用 Object.getPrototypeOf, 直到原型链尽头).
forEach, map 这些方式其实是 Array.prototype 这个对象的方法.
和数组不一样, NodeList 的原型链是这样的:
myNodeList --> NodeList.prototype --> Object.prototype --> null
NodeList 的原型上除了类似数组的 forEach 方法之外, 还有 item,entries,keys 和 values 方法.
来源: http://www.bubuko.com/infodetail-3399629.html