zoukankan      html  css  js  c++  java
  • 为什么 NodeList 不是数组?

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

  • 相关阅读:
    飞入飞出效果
    【JSOI 2008】星球大战 Starwar
    POJ 1094 Sorting It All Out
    POJ 2728 Desert King
    【ZJOI 2008】树的统计 Count
    【SCOI 2009】生日快乐
    POJ 3580 SuperMemo
    POJ 1639 Picnic Planning
    POJ 2976 Dropping Tests
    SPOJ QTREE
  • 原文地址:https://www.cnblogs.com/lguow/p/12242883.html
Copyright © 2011-2022 走看看