[英]javascript getter on private variables
我正在尝试在以下方面创建吸气剂:
function Field(val){
this.value = {};
}
Field.prototype = {
get value(){
return this._value;
},
set value(val){
this._value = val;
}
};
但是我能够实现的是field.value
的吸气剂
我想实现以下目标:
field.value.foo['20'] = 'some_value'; // ==> Setter
field.value.foo['20']; // 'some_value' ==> Getter
但是,使用上面的代码,我无法实现这一目标..有人可以帮忙..
您实际上可以在ES5中解决此问题。 我正在这里记录下来,以供其他用户从中受益。
function Foo() {
this.__value__ = {};
this.__value__['20'] = 'some_value';
};
Foo.prototype.__defineGetter__('foo', function() {
return this.__value__;
});
function Field() {
this.__value__ = new Foo();
};
Field.prototype.__defineGetter__('value', function() {
return this.__value__;
});
现在,测试一下..
var field = new Field();
var value = field.value.foo['20'];
console.log(value);
我在这里更新了JSFiddle
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.