【问题标题】:Difference between object and interface in JavaScriptJavaScript 中对象和接口的区别
【发布时间】:2016-10-07 23:13:25
【问题描述】:

我目前正在学习 JavaScript,参考 Mozilla 开发者网络。

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

例如:Document.createTreeWalker()

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

它创建的对象的接口:TreeWalker

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

我来自 Java 背景,所以在这种情况下接口的使用对我来说不是很清楚。 JavaScript 中的接口与 Java 中的接口含义是否不同?

【问题讨论】:

  • Java 标签不适合这个问题,因为它本质上与 Java 无关。

标签: javascript object interface


【解决方案1】:

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

Web 标准使用 interface 定义语言Web IDL 中描述的 IDL 来描述独立于语言的浏览器对象的行为,例如javascript,用于操作它们。因此TreeWalkerDocument Object Model (DOM) Level 2 Traversal and Range Specification 中被记录为“接口”

所以从某种意义上说,MDN 只是使用标准的词汇表来定义它所描述的浏览器对象所公开的接口。文档的主题在多大程度上被描述为另一种语言的“接口”可能会因具体情况而异。


CF Web 标准中使用的interface 的定义。

【讨论】:

    【解决方案2】:

    JavaScript 中没有内置真正的界面。似乎他们指的是从接口继承的对象。在您的示例中 Document.createTreeWalker() 返回 TreeWalker 对象的一个​​实例。

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

    【讨论】:

      【解决方案3】:

      不,javascript 并没有真正的接口类型或任何东西。 createTreeWalker() 函数只是使用 Object.create 返回对象。

      另见:

      How to implement interface in javascript

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

      【讨论】:

        猜你喜欢
        • 2011-03-02
        • 2021-06-30
        • 2011-03-27
        • 2019-02-26
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 2010-09-27
        • 1970-01-01
        相关资源
        最近更新 更多