如何在 v8 引擎中使用静态方法创建全局对象?

How to create global object with static methods in v8 engine?

我想在我的嵌入式 v8 中拥有与 JSON 相同的对象。所以我可以有几个静态方法并像这样使用它:

MyGlobalObject.methodOne();
MyGlobalObject.methodTwo();

我知道如何为全局函数使用函数模板,但我找不到任何使用静态方法的全局对象的示例。

简而言之:使用 ObjectTemplates,就像您正在设置的全局对象一样。

在 V8 的 d8 shell 中有几个这样的例子。相关摘录如下:

Local<ObjectTemplate> global_template = ObjectTemplate::New(isolate);
Local<ObjectTemplate> d8_template = ObjectTemplate::New(isolate);
Local<ObjectTemplate> file_template = ObjectTemplate::New(isolate);
file_template->Set(isolate, "read",
                   FunctionTemplate::New(isolate, Shell::ReadFile));
d8_template->Set(isolate, "file", file_template);
global_template->Set(isolate, "d8", d8_template);
Local<Context> context = Context::New(isolate, nullptr, global_template);

该代码段导致函数 d8.file.read(...) 可用。