DOM 接口:继承与实现

DOM interfaces: inheritance vs. implementation

在 MDN 的多个地方,如 here 有引号,如

Inherits properties from its parent, Node, and implements the ChildNode interface.

这里的inheritsimplements有什么区别?我对接口实现接口感到困惑。 父接口实现接口是什么意思?

我想映射 DOM 树,以便更好地理解 javascript 中哪个接口来自哪个 属性。

document.doctype instanceof DocumentType // true
document.doctype instanceof Node // true
Object.getPrototypeOf(document.doctype) == DocumentType.prototype // true
typeof document.doctype["remove"] // "function"
document.doctype instanceof ChildNode // ReferenceError: ChildNode is not defined

如您所见,doctype 实例具有规范中 ChildNode 定义的方法,但由于 javascript 不支持多重继承,因此无法通过类型系统表达。

在其他编程语言中,类型系统中的多重继承或对混合的支持将用于编码关系。

具体原型对象链如下所示,至少在 firefox 中是这样:

document.doctype ->
   DocumentType.prototype ->
   Node.prototype ->
   EventTarget.prototype ->
   Object.prototype ->
   null

ChildNode 方法似乎被注入到 DocumentType.prototype