仅当 DOM 返回 NodeList 时才使用 NodeList。为什么 DOM 不返回 Array 或至少返回其原型链中包含 Array 的类型?因为 DOM 被设计为不依赖于任何特定于语言的东西。DOM API 返回的所有类型都将是主机类型而不是本机类型。这允许 DOM 与语言无关,并且不依赖于任何特定的语言构造。
当然,您可以通过调用或应用在 NodeList 上使用数组方法。例如
Array.prototype.map.call(nodeList, function (a, index) { ... });
Run Code Online (Sandbox Code Playgroud)
“实时”NodeList 的另一个有趣的属性是 NodeList 和返回它的 API 调用之间维护的数据绑定。此数据绑定会导致 NodeList 自动更新,以响应会影响调用返回的节点的 DOM 操作。
NodeList 并不是真正的普通 JavaScript 构造,因为它是 DOM API 的一部分。与 ecma 规范不包含 [HtmlElement] 等类型类似,它也不会提及 NodeList。
您可以在万维网联盟 (W3C)的 DOM api 文档中找到它。
NodeList 接口提供了节点有序集合的抽象,而不定义或约束该集合的实现方式。DOM 中的 NodeList 对象是活动的。
(据我所知)您无法创建 NodeList。您可以访问其中之一,但不能创建一个供您自己使用。在这方面,这就是 javascript 中使用数组的原因。
NodeLists 将是访问 DOM 中“实时”节点列表的结果。这意味着列表将随着您的更改或自动更改而更新,而无需任何额外的检测。
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |