function Proto() {
this.getter;
this._get = function() {
return this.getter();
}
this.child = {};
Object.defineProperty(this, "get", {
enumerable: true,
get: this._get
});
Object.defineProperty(this.child, "get", {
enumerable: true,
get: this._get
});
}
function Sub() {
this.getter = function() {
return "ok";
}
}
Sub.prototype = new Proto();
var s = new Sub();
s.get; //тут все выполняется
s.child.get; //тут ошибка this.getter undefined, что очевидно
В коде в последних строчках видно что появляется ошибка при доступе к свойству, в принципе нетрудно догадаться о причинах - this не указывает на нужный объект, однако применение
var thiz = this;
тут не поможет ибо thiz будет указывать на прототип, а не на Sub-объект, соотвественно getter`а тажке не будет.
Как быть?