2

我如何绕过 AccessorGetter 拦截器?

Handle<FunctionTemplate> mars_obj_templ = FunctionTemplate::New(createMars);  
Handle<ObjectTemplate> mars_obj_proto = mars_obj_templ->PrototypeTemplate();  
Handle<ObjectTemplate> mars_obj_inst = mars_obj_templ->InstanceTemplate();  
mars_obj_inst->SetInternalFieldCount(1);
mars_obj_inst->SetAccessor(String::New("name"),GetName,SetName);

Handle<Value> GetName(Local<String> property,const AccessorInfo &info){
    Local<Object> self = info.Holder();
    //return what, if self->Get(property) will Recursive call
}
4

1 回答 1

1

根据我的经验,你不能。但是,如果您使用SetNamedPropertyHandleron注册一个通用拦截器,ObjectTemplate您可以安全地调用self->Get而不会以递归结束。将请求的属性与您感兴趣的属性进行比较,您可以处理它们并转发其他调用。

于 2012-10-21T21:03:26.677 回答