DOM接口:继承与实现
DOM interfaces: inheritance vs. implementation
在MDN的很多地方,比如这里,都有像
这样的引号继承和实现有什么区别?我对接口实现接口感到困惑。父接口和实现接口是什么意思?从父节点Node继承属性,实现 ChildNode接口。
我想映射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
。
相关文章:
- 在JavaScript中使用对象文字实现继承
- CoffeeScript 中的继承实现
- 在 JavaScript 中实现简单继承
- 使用Google闭包库的正确继承/子类实现剖析
- 如何在 javascript 中实现继承
- 如何实现 JavaScript 对象继承
- 在这种情况下在 JavaScript 中实现继承 [更具体地说是 node.js]
- 如何在 Screeps 对象中实现继承
- 在 AngularJS 指令中实现继承
- 在Javascript中使用寄生继承,是否可以实现内省实例方法
- 这种嵌套命名空间继承模式是否得到了很好的实现
- 用Selfish实现Javascript中的简单继承
- 我怎么能在Backbone中简单地实现类Sencha继承呢
- 使用父对象中的私有变量实现原型继承
- 如何在JavaScript中实现继承
- 我如何在JavaScript中实现这个java模式(使用继承)
- Javascript:如果不使用define prototype方法就可以实现继承,为什么还要使用它呢?
- 如何在Jquery UI控件中实现继承
- 在javascript中实现继承时出错
- 如何实现继承像&;var obj = new OpenLayers.Layer.WMS(.. ..)&;在Javascr