为什么NodeList不是数组?

NodeList 对象在某些方面和数组非常相似,看上去可以直接使用从 Array.prototype 上继承的方法。然而,除了forEach方法,NodeList 没有这些类似数组的方法。

创新互联主营抚州网站建设的网络公司,主营网站建设方案,成都APP应用开发,抚州h5小程序开发搭建,抚州网站营销推广欢迎抚州等地区企业咨询

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方法。


当前文章:为什么NodeList不是数组?
文章位置:http://ybzwz.com/article/jogpjo.html