6

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

void readAsArrayBuffer (
        in Blob blob
);

只是想了解他们为什么要这样写?这种语法是否有任何实际用途?

后来发现根本不是js,而是IDL,即接口描述语言。

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

4

1 回答 1

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 的内部实现。

于 2012-12-11T21:45:59.923 回答