为什么文档具有getElementById方法,即使它不继承自Element?

问题描述 投票:0回答:1

遵循MDN文档,Element interface包含搜索dom节点的所有方法,例如

  • getElementById
  • getElementsByTagName
  • ...
MDN也statesNOT来自Element。

那么,为什么Document保留所有这些Element方法(以及ParentNode接口中的方法)?MDN是否只是不符合最新规范,或者我缺少什么?

javascript dom domdocument
1个回答
3
投票

两者 Document.prototypeElement.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.prototypeDocument.prototype都实现了它,但是它们是通过将ParentNode方法直接放在其原型上来实现的。 (ParentNode与节点完全不

© www.soinside.com 2019 - 2024. All rights reserved.