V8 C ++ APIストア関数ポインタ?

この質問は、V8 C ++ APIに関するものです。

私はコンテキストからjavascript関数へのグローバル参照を保持したい これは、関数をローカルハンドルに格納するのではなく

Local init = ...

永続的なハンドルに格納したい

Persistent init = ...

私はそうする正しい方法はそうだと思う:

Local l_init = ...
Persistent init =  currentScope.Close(l_init);

currentScope.Close()はローカルハンドルを返します。 クラスメンバーとしてハンドルをキャッシュすることが可能なので、Get every frameを行う必要はありませんか?

Local変数をクラス変数として使用し、 currentScope.Close を使用して割り当てることができますか? Dispose 関数を実行したら解放できますか?

0

1 答え

永続ハンドルに格納する場合は、実際に範囲を心配する必要はありません。この議論の目的のために、スコープを閉じることが主な目的は、オブジェクトにガベージコレクションをマークすることです。

あなたの例では、あなたは次のことをしたいと思う:

v8::Persistent init = v8::Persistent::New(l_init); 
1
追加された
ありがとう!それは本当に物事をクリアした。
追加された 著者 Gabor Szauer,