In node-addon-example, line 11 of 3_callbacks/addon.cc reads:

cb->Call(Context::GetCurrent()->Global(), argc, argv);

V8's documentation shows that:

V8EXPORT Local<Value> v8::Function::Call(Handle<Object> recv,
    int argc,
    Handle<Value> argv[]
);

So Context::GetCurrent()->Global() is used as Handle<Object> recv.

But what does recv stand for? What does it mean? And why is it appropriate to use Context::GetCurrent()->Global() in this case?

有帮助吗?

解决方案

It is the same as apply in JS. In JS, you do

var context = ...;
cb.apply(context, [ ...args...]);

The object passed as the first argument becomes this within the function scope. More documentation on MDN. If you don't know JS well, you can read more about JS's this here: http://unschooled.org/2012/03/understanding-javascript-this/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top