我正在阅读SpiderMonkey教程,了解如何通过JSAPI spidermoneky在c ++程序中嵌入和执行javascript代码。 但我并不完全了解全局对象的作用以及JS_class和JS_NewGlobal的作用是什么? 通过自定义全局对象也意味着什么?
答案 0 :(得分:0)
在JavaScript中,您有一个顶级命名空间,它实际上具有与普通javascript对象类似的属性,因此它被称为“全局对象”。您通常认为像C这样的语言中的全局变量通常是全局对象的属性。顶级函数也存在于那里,这就是为什么你会看到为该文档中的全局对象创建的srand
和system
等顶级事物的绑定。您可能希望将不同的功能放在不同的全局环境中。嵌入式喜欢做各种定制的事情。
JS_Class
是一个SpiderMonkey概念,用于支持JS运行时中对象的本机类型。当你想创建一个新的特殊内置类型时,你可以通过定义一个JS_Class来实现,然后从类中实例化的对象可以在本机代码中测试它们的类,看它是否匹配。 HTH!