Javascript 为什么使用 NodeList 而不是使用数组

标签 javascript dom

我看过文档,并没有完全理解使用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/

相关文章:

javascript - 如何使用 Javascript DOM 收集选定的下拉文本?

javascript - 存储对 `call` 函数的引用

Javascript 函数和声明

javascript - 使用jQuery根据表中 `tr`的值隐藏一个 `td`

javascript - jQuery,反转 $.each 之类的?

javascript - IE11 DOM 规范化不适用于表行

javascript - 如何断言两个数组不相交?

javascript - 如何解决获取json对象元素的问题

javascript - 在表单提交时获取对 _blank 目标窗口的引用

angular - 当 expect(result).toBe(null) 测试失败时测试卡住。 ( Angular 2, Jasmine )