DOM接口:继承与实现

时间:2016-10-21 09:56:55

标签: javascript inheritance dom interface-implementation

在像here这样的MDN的多个位置,有引号如

  

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

inherits implements 之间有什么区别?我对界面实现界面感到困惑。 父接口实现的接口意味着什么?

我想映射DOM树,以便更好地了解哪个界面来自javascript中的哪个属性。

1 个答案:

答案 0 :(得分: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不支持多重继承,因此无法通过类型系统表达。

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

具体的原型对象链看起来如下,至少在firefox中:

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

ChildNode方法似乎被注入DocumentType.prototype