我正在使用eclipsesource J2V8库与Node JS脚本进行通信。要求之一是捕获V8Object的execute * Function方法抛出的异常,将其记录到我们的日志存储中,然后将异常返回给应用程序处理。
为此,我将重写V8Object类的上述方法,并在构造函数中传递已创建的V8Object(我不能使用创建原始V8Object对象的“包装”类)。我的构造函数如下:
public V8ObjectWrapper(V8Object _v8Object)
{
super(_v8Object.getRuntime());
super.setPrototype(_v8Object);
}
第一行是将v8RuntimePointer提供给我的包装器对象,prototype方法调用是将对象的原型复制到我的包装器对象。
一切正常。包装对象具有正确的方法和已注册的回调。但是,由该包装对象表示的nodeJS对象往往会丢失存储在this
变量中的信息。如何复制原始的V8Object,以便将所有信息包含在包装对象中?