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

私の経験によると、あなたはできません。SetNamedPropertyHandlerしかし、 onを使用して一般的な Interceptor を登録すると、再帰に陥ることなくObjectTemplate安全に呼び出すことができます。self->Get要求されたプロパティと関心のあるプロパティを比較すると、それらを処理して他の呼び出しを転送することができます。

于 2012-10-21T21:03:26.677 に答える