读取specs我会认为Node
或Node.prototype
定义了nodeType值ELEMENT_NODE
,ATTRIBUTE_NODE
等。但是,事实证明(至少在Firefox中是),您可以通过两个实例和类访问它们。
console.log(Node.ELEMENT_NODE)
console.log(Node.prototype.ELEMENT_NODE)
这是规格的缺点吗?我在读书时想念东西吗?澄清会很棒!
因为它们是在接口上定义的constants(const
)。
常量与它们出现在其上的接口或回调接口的特定实例无关。是否在实例上公开常量是特定于语言的。
然而,ECMAScript语言绑定确实允许通过实现IDL接口的对象访问常量,在这些IDL接口上声明了常量。例如,使用以下IDL:
[Exposed=Window] interface A { const short rambaldi = 47; };
可以在ECMAScript中以
A.rambaldi
或instanceOfA.rambaldi
的形式访问该常数值。
因此,就像在接口上定义的任何其他const
一样,您可以直接在接口上或在任何实例上访问它,因此实现者也只需在原型上公开它。