JavaScript中对象和接口的区别

时间:2016-06-07 21:31:16

标签: javascript object interface

我目前正在使用Mozilla Developer Network作为参考来学习JavaScript。

让我感到困惑的是,MDN将对象称为接口。

例如:Document.createTreeWalker()

在底部,有一个指向TreeWalker对象的链接,但它说:

它创建的对象的接口:TreeWalker

如果我可以实例化TreeWalker是一个接口吗? 而TreeWalker只是一个例子,几乎MDN中的每个对象都被称为接口。

我来自Java背景,所以在这种情况下使用界面对我来说并不清楚。 JavaScript中的接口是否意味着与Java不同的东西?

3 个答案:

答案 0 :(得分:3)

"接口"出现在这种情况下,因为这是适用于MDN上描述的(javascript)对象的标准中使用的术语。

Web标准使用Web IDL中描述的 接口定义语言或IDL来描述独立于语言的浏览器对象的行为,例如: javascript,用来操纵它们。因此TreeWalker被记录为"界面"在Document Object Model (DOM) Level 2 Traversal and Range Specification

因此,从某种意义上说,MDN只是使用标准的词汇表,该词汇表定义了它所描述的浏览器对象所公开的界面。文档的主题将在何种程度上被描述为"接口"另一种语言可能因具体情况而异。

<小时/> C.F. Web标准中使用的interface的定义。

答案 1 :(得分:0)

不,javascript确实没有真正的界面类型或任何东西。 createTreeWalker()函数只使用Object.create返回对象。

另见:

How to implement interface in javascript

Does JavaScript have the interface type (such as Java's 'interface')?

答案 2 :(得分:0)

JavaScript中没有真正的界面。看起来它们指的是从接口继承的对象。在您的示例中,Document.createTreeWalker()返回TreeWalker对象的实例。

// myTreeWalker is your object. TreeWalker is the interface.
var myTreeWalker = Document.createTreeWalker()