[英]How do I return a native object from a class derived from Nan::ObjectWrap?
[英]Return a Nan::ObjectWrap from another Nan::ObjectWrap
我有兩個子類Nan::ObjectWrap
class Zyre: public Nan::ObjectWrap {...}
class ZyreEvent: public Nan::ObjectWrap {...}
如何從Zyre
的方法返回ZyreEvent
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
是受保護的成員。
如果我理解正確,你想從(子類) Nan::ObjectWrap
的另一個(子類) Nan::ObjectWrap
的方法實例Nan::ObjectWrap
。
注意:我沒有經驗,所以這可能有錯或錯。 我把我的信息源放在括號中,我猜測它是如何完成的。
static NewInstance
方法( NewInstance ) v8::External
來包裝第一個類的C ++對象,並將其作為New
的參數傳遞給argc
和argv
到第一個類的構造函數( 使用v8 :: External )( v8 :: External doc ) New
方法並處理info.Length() == 1 && info[0]->IsExternal()
情況,在這種情況下基本上是復制構造函數( 復制傳遞指針 ) ...::NewInstance()
來設置返回值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.