为什么Mozilla使用IDL编写JavaScript文档

dmi*_*i3y 6 javascript api idl webidl

阅读有关fileReader的文档,并发现他们使用void运算符编写方法,如下所示:

void readAsArrayBuffer (
        in Blob blob
);
Run Code Online (Sandbox Code Playgroud)

只是试着明白为什么他们这样写呢?如果有这种语法的实际用途?

事后证明它根本不是js,而是IDL,它是接口描述语言.

仅供参考:在提出这个问题之前,我会谷歌并阅读JS中的实际void运算符.所以请没有需要让我回来.问题有点模糊,但它必须处理,为什么Mozilla有关于这样编写的JavaScript的文档?在IDL中,实际的JavaScript几乎没有?

Mik*_*maa 4

Mozilla 以两种方式使用 IDL

  • Web IDL:在 W3C 规范等中用于描述 Javascript API。这些是规范规格。

  • XPCOM内部 IDL 方言:本机 Javascript API 用 C++ 实现。在 Gecko(Firefox 引擎)的情况下,特别是在名为 XPCOM 的特定领域框架中

正如链接页面所述,Gecko 在内部以语言中立的 IDL 方言描述接口,因为这些接口必须在本机运行时 (C++) 和 Javascript 引擎 (Javascript) 中实现。

在这种情况下,IDL 描述要么是从原始 Web IDL 规范复制粘贴的,要么是从 Gecko 内部实现复制粘贴的。