Что означают глобальные объекты в spidermonkey и какова роль JS_class и JS_NewGlobalObject?

Я читал учебник SpiderMonkey о том, как встраивать и выполнять код javascript в программе C++ через JSAPI spidermoneky. но я не совсем понял, что делают глобальные объекты и какова роль JS_class и JS_NewGlobal? также, что это означает, настраивая ваши глобальные объекты?

1 ответ

В JavaScript у вас есть пространство имен верхнего уровня, которое на самом деле имеет свойства, подобные обычным объектам JavaScript, поэтому оно называется "глобальным объектом". То, что вы обычно воспринимаете как глобальные переменные в языке, подобном C, обычно является свойствами глобального объекта. Здесь также есть функции верхнего уровня, поэтому вы видите привязки для таких вещей, как srand а также system создается для глобального объекта в этом документе. Возможно, вы захотите поместить различные функции в разные глобальные среды. Embedders любят делать все виды настройки вещей.

JS_Class является концепцией SpiderMonkey для нативного типа, который поддерживает объекты во время выполнения JS. Когда вы хотите создать новый, специальный встроенный тип, вы делаете это, определяя JS_Class, а затем объекты, созданные в классе, могут проверить свой класс в нативном коде, чтобы увидеть, соответствует ли он. НТН!

Другие вопросы по тегам