是否有从javascript Node接口继承的方法

Is there a way to inherit from the javascript Node interface?

本文关键字:继承 方法 接口 Node javascript 是否      更新时间:2023-09-26

我想写一些从DOM节点接口继承的javascript类…听起来很像如何从dom-element-class继承,但是我不想在[X|XHT|HT]ML文档中使用它的实例。我的目标是构建一个绝对的独立的DOM树,因此我希望使用现代浏览器提供的Node接口,而不是创建自己的DOM实现。节点不应该有任何HTML属性,比如类名、样式或(客户端)偏移量——只需要一个普通的Node。类不需要是可扩展的,Node方法就足够了。

我也很高兴,如果有可能创建一个DocumentFragment或一个新的文档
a)不是(X)HTML文档,而是XML文档和
B)与当前文档不关联(如document.implementation)

该脚本应该可以在最新版本的Opera和Firefox中工作。其他浏览器是最好的,而不是必须的;我不在乎旧版本

这似乎是最接近我的要求:

new DOMParser().parseFromString("<root />", "text/xml");

但是仍然没有办法继承Node接口

No。Node是一个抽象接口。它没有constructor操作,这意味着您既不能构造它,也不能从它继承。它只是抛出:

未使用构造函数操作声明接口的接口对象在作为函数和构造函数调用时都将抛出。

所以当你可以写class Sub extends Node {}时,你永远不能实例化它。同样,从Node.prototype继承是可能的,但没有意义,因为所有的内置方法都需要内部字段。