gpt4 book ai didi

javascript - JavaScript 中的接口(interface)是什么?

转载 作者:行者123 更新时间:2023-12-05 00:28:30 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





JavaScript interfaces in MDN

(1 个回答)


去年关闭。




许多 MDN 页面将事物描述为“接口(interface)”——我很惊讶“接口(interface)”没有链接到更解释性的页面;它只是在 MDN 的 web APIs page 上被描述为“对象类型”。 .

最佳答案

一个接口(interface)描述了形状 的一个对象。 (它有什么属性,这些属性包含什么类型的值,等等。)它不是一个对象本身——它是对实现接口(interface)的特定对象的更抽象的描述。
例如,在 HTML 标准中,DragEvent interface是这样描述的:

[Exposed=Window]
interface DragEvent : MouseEvent {
constructor(DOMString type, optional DragEventInit eventInitDict = {});

readonly attribute DataTransfer? dataTransfer;
};

dictionary DragEventInit : MouseEventInit {
DataTransfer? dataTransfer = null;
};
所以 DragEventMouseEvent 的类型(这是另一个界面)。它有一个构造函数,所以你可以调用 newwindow.DragEvent .调用构造函数时,使用以下参数调用它:
  • type , 这是一个 DOMString (基本上就是任何纯字符串)
  • DragEventInit 类型的可选参数(文档定义),默认为空对象

  • DragEvent 实例也有一个 dataTransfer property

    请注意,您链接到的“接口(interface)”定义并不完全是 JavaScript 的东西,而更多的是 Web API 的东西。在浏览器之外的其他 JavaScript 实现中(例如,在 Node 中),接口(interface)可能意味着不同的东西(或根本没有)。
    TypeScript 是一种广泛使用的 JavaScript 静态类型检查器,具有非常相似的接口(interface)概念,它描述了特定对象的形状。例如:
    // Define the shape of a Foo object
    interface Foo {
    prop: string;
    }

    // Create an object that implements Foo
    const someFoo: Foo = {
    prop: 'somevalue'
    };

    关于javascript - JavaScript 中的接口(interface)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67362268/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com