我看过文档,并没有完全理解使用NodeList的优势。
既然它像数组(我知道它不是数组),那么使用 NodeList 有什么好处呢?
最佳答案
只有在 DOM 返回一个 NodeList 时才使用它。为什么 DOM 不返回一个数组,或者至少不返回一个在其原型(prototype)链中包含数组的类型?因为 DOM 被设计为不依赖于任何特定语言。 DOM API 返回的所有类型都是主机类型,而不是 native 类型。这允许 DOM 与语言无关并且不依赖于任何特定的语言结构。
当然,您可以通过调用或应用在 NodeList 上使用 Array 方法。例如
Array.prototype.map.call(nodeList, function (a, index) { ... });
“实时”NodeList 的另一个有趣属性是在 NodeList 和返回它的 API 调用之间维护的数据绑定(bind)。此数据绑定(bind)会导致 NodeList 自动更新以响应可能影响调用返回的节点的 DOM 操作。
关于Javascript 为什么使用 NodeList 而不是使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21768551/