我正在整合V8,我希望每次访问对象的任何属性时都会收到通知。 我知道如何使用SetAccessor方法为单个属性定义访问器:
void v8::ObjectTemplate::SetAccessor ( Handle< String > name,
AccessorGetter getter,
AccessorSetter setter = 0,
Handle< Value > data = Handle< Value >(),
AccessControl settings = DEFAULT,
PropertyAttribute attribute = None
)
我想知道是否也可以在v8中定义一个通用访问器,每次访问对象的任何属性时都会调用该访问器? 类似于前面提到的SetAccessor但没有name参数。
由于
答案 0 :(得分:1)
您要查找的方法在v8::ObjectTemplate
类上称为SetNamedPropertyHandler
。您可以通过这种方式捕获和拦截(甚至阻止创建)对象上的任何属性。