vectorNanCallback 里面函数是从JavaScript中传递的判断是否有跟v8Localv8Function f1相同的js引用 注意是js引用不是c++引用
可以使用 v8::Function::Equals() 方法来判断两个 JavaScript 函数是否相同。具体步骤如下:
- 将
v8::Local<v8::Function>类型的参数f1强制转换为v8::Local<v8::Object>类型,并保存为v8::Local<v8::Object> obj1。 - 遍历
vector<Nan::Callback*>中所有元素,将其中每个元素强制转换为v8::Local<v8::Function>类型,并保存为v8::Local<v8::Object>类型的变量obj2。 - 使用
obj1->Equals(isolate, obj2)方法判断obj1和obj2是否相同,如果相同则说明f1和该元素相同。
注意,上述步骤中的 isolate 参数需要传递当前的 v8::Isolate 对象,可以使用 info.GetIsolate() 方法获取。此外,如果 vector<Nan::Callback*> 中的元素有可能为 nullptr,则需要在遍历时先判断元素是否为 nullptr,否则会导致程序崩溃
原文地址: https://www.cveoy.top/t/topic/fJJz 著作权归作者所有。请勿转载和采集!