为什么htmlCollection不从数组继承

时间:2016-05-12 02:39:23

标签: javascript arrays inheritance htmlcollection

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

converting an htmlCollection to an array的显而易见的方式,但它正在转换它。它默认不是那样的。

更新

这是关于以下评论:

  

可能重复是HTMLCollection An Array? - @winhowes

正如评论中所解释的,这两个问题差异很大。 The other question解释了两者之间的区别,我在上面的问题中也写过。我的问题是,为什么JavaScript的默认htmlCollection不会从数组继承。

这两个问题的区别在于,the other question是'差异是什么,我的问题是'为什么会出现差异?

1 个答案:

答案 0 :(得分:0)

问:“为什么htmlCollection不从数组继承?”

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

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

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

P.S .: htmlCollection 对象与 arguments 对象的相似之处远远超过其他任何对象,因为它们都是由Object构造函数调用的,而不是由Array调用。