为什么htmlCollection不从数组继承?我知道htmlCollection是一个实时集合,而不是一个快照的数组,但是它仍然可以从数组继承吗?
converting an htmlCollection to an array的显而易见的方式,但它正在转换它。它默认不是那样的。
更新
这是关于以下评论:
可能重复是HTMLCollection An Array? - @winhowes
正如评论中所解释的,这两个问题差异很大。 The other question解释了两者之间的区别,我在上面的问题中也写过。我的问题是,为什么JavaScript的默认htmlCollection不会从数组继承。
这两个问题的区别在于,the other question是'差异是什么,我的问题是'为什么会出现差异?
答案 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调用。