Node.js 中的 C++ 插件可以覆盖某些 V8 class 或方法吗?
Can a C++ addon in Node.js override some V8 class or method?
我不是 C++ 程序员,所以如果这是一个愚蠢的问题,请原谅我。
假设我想更改 V8 中的特定行为。当然,我可以在 deps/v8
中更改它,然后从源代码构建 Node.js。但我正在寻找是否有更简单的方法。
我可以编写一个 C++ 插件来覆盖我在 V8 中想要的内容吗?
例如,我可以创建一个空插件吗:
namespace MY_EMPTY_ADDON
{
void init(v8::Local<v8::Object> exports, v8::Local<v8::Object> module)
{
// empty
}
NODE_MODULE(MY_EMPTY_ADDON, init)
}
然后,在同一个文件中添加如下内容:
namespace v8
{
namespace internal
{
// here I do my changes
}
}
这行得通吗?
没有。 C++ 不允许像 JavaScript 那样进行猴子修补。您不能从外部覆盖另一个模块s/library的功能。
我不是 C++ 程序员,所以如果这是一个愚蠢的问题,请原谅我。
假设我想更改 V8 中的特定行为。当然,我可以在 deps/v8
中更改它,然后从源代码构建 Node.js。但我正在寻找是否有更简单的方法。
我可以编写一个 C++ 插件来覆盖我在 V8 中想要的内容吗?
例如,我可以创建一个空插件吗:
namespace MY_EMPTY_ADDON
{
void init(v8::Local<v8::Object> exports, v8::Local<v8::Object> module)
{
// empty
}
NODE_MODULE(MY_EMPTY_ADDON, init)
}
然后,在同一个文件中添加如下内容:
namespace v8
{
namespace internal
{
// here I do my changes
}
}
这行得通吗?
没有。 C++ 不允许像 JavaScript 那样进行猴子修补。您不能从外部覆盖另一个模块s/library的功能。