在Addons上的Node.js v6.4.0文档中,函数遵循以下模式。
void X(const FunctionCallbackInfo<Value>& args) {
Isolate* isolate = args.GetIsolate();
...
}
所以没有HandleScope
的实例化,就像之前版本的node.js一样。只有一个例外,HandleScope scope(isolate)
已完成。
大多数函数都会实例化Local<...>
句柄,所以我希望HandleScope是必需的,所以垃圾收集是在函数返回时完成的。
那么:在node.js 6.4.0原生插件中何时需要HandleScope?
答案 0 :(得分:1)
一般来说,如果从JavaScript调用该函数,则不需要HandleScope
。这是因为已经存在从您的JavaScript调用站点继承的(父)范围。只要JavaScript范围被垃圾收集,那么您在C ++中创建的任何句柄也会被收集,因为它们已经附加到该范围。
因此,为每个功能添加HandleScope
不会对任何事情造成伤害,只是因为它可能会影响性能。