在node-addon-example中,line 11 of 3_callbacks/addon.cc
读取:
cb->Call(Context::GetCurrent()->Global(), argc, argv);
V8EXPORT Local<Value> v8::Function::Call(Handle<Object> recv,
int argc,
Handle<Value> argv[]
);
因此Context::GetCurrent()->Global()
用作Handle<Object> recv
。
但recv
代表什么?这是什么意思?为什么在这种情况下使用Context::GetCurrent()->Global()
是合适的?
答案 0 :(得分:5)
与JS中的apply
相同。在JS中,你做
var context = ...;
cb.apply(context, [ ...args...]);
作为第一个参数传递的对象在函数范围内变为this
。有关MDN
的更多文档。如果你不熟悉JS,你可以在这里阅读有关JS this
的更多信息:http://unschooled.org/2012/03/understanding-javascript-this/