In JavaScript there is the possibility to create getters and setters the following way:
function MyClass(){
var MyField;
this.__defineGetter__("MyField",function(){
return MyField;
});
this.__defineSetter__("MyField",function(value){
MyField = value;
});
}
But is there a way to get the Getter or Setter FUNCTION? I think of something like this:
var obj = new MyClass();
obj.__getSetter__("MyField")("MyValue");
I need such a functionality when extending base classes. For example: Class "A" has field "a", Class "B" extends from "A" and also wants to have a field "a". To pass values from the "a"-field of a "B"-object to the "a"-field of a "A"-object I need to get the setter/getter function before overriding them.
Actually, __lookupGetter__
and __lookupSetter__
methods are deprecated. Instead of these you must use:
/* __lookupGetter__ */
Object.getOwnPropertyDescriptor(obj, 'MyField').get;
/* __lookupSetter__ */
Object.getOwnPropertyDescriptor(obj, 'MyField').set;