handle_scope
如果我只想返回一个值,我需要吗?
Handle<Value> platformName(const Arguments& a) {
HandleScope handle_scope;
return String::New("linux");
}
handle_scope
如果我只想返回一个值,我需要吗?
Handle<Value> platformName(const Arguments& a) {
HandleScope handle_scope;
return String::New("linux");
}
假设您的函数始终是从现有范围调用的,那么您无需在此函数中声明范围。每个函数包含作用域的选择很大程度上是一个选择是否为每个函数的垃圾收集释放内存。您可能不需要它,并且应该定期关闭您的“主要”范围以允许 GC 发生。
如果要在此函数中创建新范围,则示例的正确返回方法是:
return handle_scope.Close(String::New("linux"));
在这种情况下,这样做不会给您带来额外的价值,因为在范围内没有创建本地句柄;只有您要返回的那个,无论如何它都在封闭范围内。但是如果你在这个函数中创建了几个本地句柄,那么将它们包含在一个新的范围内是值得的,这样它们就可以被 GC'ed。