Azi*_*ule 3 javascript oop prototype object
假设我们有这个类:
var MyClass = function() {
this.oneProp = 'one prop';
this.myProps = {
prop1: 'my prop1',
prop2: 'my prop2'
};
});
Run Code Online (Sandbox Code Playgroud)
我如何配置一个getter / setter方法上myProps.prop1使用Object.defineProperty,这样,当我改变myProps.prop1,值myProps.prop2被设置为,例如,'_'+prop1?
我找到了一个简单的方法来定义一个 getter/setteroneProp使用:
Object.defineProperty(MyClass.prototype, 'oneProp', {
...
});
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在myProps.prop1.
谢谢
您可以直接在对象字面量中编写 getter。
var MyClass = function() {
this.oneProp = 'one prop';
this.myProps = {
prop1: 'my prop1',
get prop2() { return '_' + this.prop1; },
set prop2(v) { this.prop1 = v; }
};
}
var x = new MyClass;
document.write(x.myProps.prop2 + '<br>');
x.myProps.prop2 = 42;
document.write(x.myProps.prop2 + '<br>');Run Code Online (Sandbox Code Playgroud)