XadillaX XadillaX - 1 year ago 38
Node.js Question

What does the first argument of Function::Call in V8 Engine mean?

In node-addon-example, line 11 of


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[]

is used as
Handle<Object> recv

But what does
stand for? What does it mean? And why is it appropriate to use
in this case?

Answer Source

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/