0
我正在使用節點模塊,並且想從C++的ObjectWrap的子類調用它的一些方法。我不完全清楚如何在函數定義中正確構造Arguments對象。調用方法包裝爲v8的ObjectWrap從C++
舉例來說,我想調用下面的方法(Context2d擴展ObjectWrap):
Handle<Value>
Context2d::LineTo(const Arguments &args) {
HandleScope scope;
if (!args[0]->IsNumber())
return ThrowException(Exception::TypeError(String::New("lineTo() x must be a number")));
if (!args[1]->IsNumber())
return ThrowException(Exception::TypeError(String::New("lineTo() y must be a number")));
Context2d *context = ObjectWrap::Unwrap<Context2d>(args.This());
cairo_line_to(context->context(), args[0]->NumberValue(), args[1]->NumberValue());
return Undefined();
}
所以,簡潔:具有展開Context2D,我怎麼調用靜態的LineTo使得同一實例是從args返回的。這個調用?我當然意識到,我可以通過深入研究v8來了解這一點,但我希望有人在這個話題上有所認識可以指引我朝着正確的方向前進。