簡體   English   中英

從另一個Nan :: ObjectWrap返回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

注意:我沒有經驗,所以這可能有錯或錯。 我把我的信息源放在括號中,我猜測它是如何完成的。

  1. 在接收自身指針的第一個類中創建static NewInstance方法( NewInstance
  2. 使用v8::External來包裝第一個類的C ++對象,並將其作為New的參數傳遞給argcargv到第一個類的構造函數( 使用v8 :: External )( v8 :: External doc
  3. 編輯第一個類' New方法並處理info.Length() == 1 && info[0]->IsExternal()情況,在這種情況下基本上是復制構造函數( 復制傳遞指針
  4. 在第二個類中使用...::NewInstance()來設置返回值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM