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的功能。