Почему Mozilla имеет документацию по JavaScript, написанную на IDL
Читая документацию о fileReader, узнайте, что они пишут методы, используя оператор void, например:
void readAsArrayBuffer (
in Blob blob
);
просто пытаюсь понять, почему они так пишут? Есть ли практическое использование этого синтаксиса?
Позже это оказывается вовсе не js, а IDL, который является языком описания интерфейсов.
К вашему сведению: перед тем, как задавать этот вопрос, я делаю Google и читаю о действительном void-операторе в JS. Поэтому, пожалуйста, нет необходимости возвращать меня обратно. Вопрос немного размытый, но он имеет дело с тем, почему Mozilla имеет документацию по JavaScript, написанную так? В IDL, который имеет мало с реальным JavaScript?
1 ответ
Mozilla использует IDL двумя способами
Web IDL: используется в спецификациях W3C и для описания API-интерфейсов Javascript. Это нормативные спецификации.
Внутренний диалект IDC в XPCOM: нативные API Javascript реализованы на C++. В случае Gecko (движка Firefox), в частности, в предметно-ориентированной среде, называемой XPCOM
Как указывает связанная страница, Gecko внутренне описывает интерфейсы на диалекте IDL, не зависящем от языка, потому что эти интерфейсы должны быть реализованы как в собственном времени выполнения (C++), так и в движке Javascript (Javascript).
В этом случае описание IDL является либо копированием-вставкой из оригинальной спецификации Web IDL, либо из внутренней реализации Gecko.