为什么不't htmlCollection从数组继承

Why doesn't htmlCollection inherit from array

本文关键字:数组 继承 htmlCollection 为什么不      更新时间:2023-09-26

为什么htmlCollection不从数组继承?我知道htmlCollection是一个实时集合,而不是一个快照数组,但它不能从数组继承吗?

有一种显而易见的方法可以将htmlCollection转换为数组,但那就是转换它。默认情况下不是这样。

更新

这是关于以下评论:

HTMLCollection可能是一个数组吗@winhowes

正如评论中所解释的那样,这两个问题有很大的不同。另一个问题解释了两者之间的区别,我也在上面的问题中写道。我的问题是,为什么JavaScript的默认htmlCollection不从数组继承。

这两个问题的区别在于,另一个问题是"差异是什么",我的问题是"为什么会有差异"。


Q:"为什么htmlCollection不从数组继承?"


A:这是因为htmlCollection与JavaScript数组完全无关。第一个是由DOM创建的DOM对象,第二个是由JS数组构造函数创建的。由于与JS数组构造函数无关,DOM htmlCollection自然不会从数组继承任何东西。

htmlCollectionlength属性是它们之间唯一的公共属性,但是,与Aray length相反,DOM htmlCollection属性是只读

您可能最感兴趣的部分是,htmlCollection可以使用JS数组公开的大多数方法。并且可以直接分配给HTMLCollection原型,其构造函数,正如您自己所看到的:指向JS对象构造函数。

p.s.:htmlCollection对象与arguments