有时候我们需要对不同的js函数名称设置相同的回调函数,如何实现呢?
场景:需要通过注入C++函数为js提供分级日志函数。
重点函数:
static Local<FunctionTemplate> New(
Isolate* isolate, FunctionCallback callback = nullptr,
Local<Value> data = Local<Value>(),
Local<Signature> signature = Local<Signature>(), int length = 0,
ConstructorBehavior behavior = ConstructorBehavior::kAllow,
SideEffectType side_effect_type = SideEffectType::kHasSideEffect,
const CFunction* c_function = nullptr);
思想:创建函数模板时通过第三个参数data将标识一并注入JS上下文中。
首先,定义日志级别。
enum
{
Debug = 0,
Error
};
然后,定义函数模板,注入回调函数。
v8::Local<v8::ObjectTemplate> global = v8::ObjectTemplate::New( isolate );
int* debug = new int( Debug );
global->Set( isolate, "De