为什么htmlCollection不从数组继承?我知道htmlCollection是一个实时集合,而不是一个快照数组,但它不能继承数组吗?
converting an htmlCollection to an array的方式是显而易见的,但这是在转换它。这不是默认的。
更新
这与以下评论有关:
可能重复Is HTMLCollection An Array? - @winhowes
正如评论中所解释的,这两个问题大不相同。The other question解释了两者之间的区别,我在上面的问题中也提到了这一点。我的问题是,为什么JavaScript的默认htmlCollection不从数组继承。
这两个问题的区别是,the other question是‘差别是什么’,我的问题是‘为什么有差异’。
发布于 2016-05-12 03:52:14
Q:“为什么htmlCollection不继承数组?”
A:,这是因为htmlCollection与JavaScript数组完全无关。第一个是DOM创建的DOM对象,后者是由JS构造函数创建的。由于与JS构造函数无关,DOM htmlCollection自然不会从数组继承任何东西。
htmlCollection length属性是它们之间的唯一公共属性,但是,与Aray相反,DOM htmlCollection属性是只读的。
您最感兴趣的部分是,htmlCollection可以使用JS数组公开的大多数方法。并且可以直接分配给HTMLCollection prototype,您可以看到它的构造函数:指向JS对象构造函数。
p.s.:htmlCollection对象与参数对象非常相似,因为它们都是由对象构造函数调用的,而不是由数组调用的。
https://stackoverflow.com/questions/37176343
复制相似问题