Google は、V8 Javascript エンジンから使用できるアクセサで C++ クラス メソッドをラップする方法を説明してくれました。
ただし、これらのアクセサ プロパティを使用できるようにする JavaScript オブジェクトの名前を決定する方法については言及されていません。
(サンプルからの) C++ クラス インスタンスの名前を V8 Javascript に伝えるにはどうすればよいですか? または、すでに名前がある場合、それは何ですか?
次の 2 行は、アクセサーを設定します。
point_templ.SetAccessor(String::New("x"), GetPointX, SetPointX);
point_templ.SetAccessor(String::New("y"), GetPointY, SetPointY);
JavaScript から次のように使用できると思います。
someObject.x = someObject.y * 2;
" " が何であるかを判断するにはどうすればよいsomeObject
ですか?
C++ コードと V8 Javascript ラッパーとのリンクを完了するためのコードが欠落しているように感じます。
たとえば、静的グローバル変数にアクセスするためのサンプル コードには、アクセサ関数を V8 JavaScript に明示的に公開する行がありました。
Handle<ObjectTemplate> global_templ = ObjectTemplate::New();
global_templ->SetAccessor(String::New("x"), XGetter, XSetter);
global_templ->SetAccessor(String::New("y"), YGetter, YSetter);
Persistent<Context> context = Context::New(NULL, global_templ)