2

在 MDN 的多个地方,像这里有这样的引号

从其父节点 Node继承属性,并实现ChildNode 接口。

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

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

4

1 回答 1

4
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.

于 2016-10-21T13:51:04.567 回答