1

我目前正在集成 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 参数。

谢谢

4

1 回答 1

1

您正在寻找的方法SetNamedPropertyHandlerv8::ObjectTemplate类上被调用。您可以通过这种方式捕获和拦截(甚至阻止创建)对象上的任何属性。

于 2013-01-09T08:13:55.497 回答