我有两个Nan::ObjectWrap
class Zyre: public Nan::ObjectWrap {...}
class ZyreEvent: public Nan::ObjectWrap {...}
如何从ZyreEvent
中的方法返回Zyre
javascript对象?
我有以下方法,我在其中创建ZyreEvent
:
NAN_METHOD (Zyre::_recv) {
Zyre *node = Nan::ObjectWrap::Unwrap <Zyre> (info.Holder ());
ZyreEvent *zyre_event = new ZyreEvent (node->self);
info.GetReturnValue().Set(zyre_event->Wrap(info.This()));
}
但我无法包装zyre_event,因为Wrap
是受保护的成员。
答案 0 :(得分:1)
如果我理解正确,你想从Nan::ObjectWrap
的另一个(子类)Nan::ObjectWrap
的方法实例的(子类)返回。
注意:我没有经验,所以这可能有错或错。我把我的信息源放在方括号中,我猜测它是如何完成的。
static NewInstance
方法(NewInstance)v8::External
包装第一类'C ++对象,并将其作为New
的参数传递给argc
和argv
到第一类'构造函数(using v8::External })(v8::External doc)New
方法并处理info.Length() == 1 && info[0]->IsExternal()
案例,在这种情况下基本上是复制构造函数(copying passed pointer)...::NewInstance()
设置返回值