遵循MDN文档,Element interface包含搜索dom节点的所有方法,例如
那么,为什么Document保留所有这些Element方法(以及ParentNode接口中的方法)?MDN是否只是不符合最新规范,或者我缺少什么?
两者 Document.prototype
和Element.prototype
具有getElementsByTagName
。一个不是从另一个继承的-它们是完全独立的功能(不直观):
console.log(
Element.prototype.hasOwnProperty('getElementsByTagName'),
Document.prototype.hasOwnProperty('getElementsByTagName'),
Element.prototype.getElementsByTagName === Document.prototype.getElementsByTagName,
Document.prototype.hasOwnProperty('getElementById'),
Element.prototype.hasOwnProperty('getElementById'),
);
[Element.prototype
确实not没有getElementById
。
ParentNode
接口是抽象规范,而不是可以在某处检查的实际Javascript对象。 Element.prototype
和Document.prototype
都实现了它,但是它们是通过将ParentNode方法直接放在其原型上来实现的。 (ParentNode
与节点完全不)