Здравствуйте!
В этом (
Объекты, прототипы и циклы) топике мне посоватовали использовать обертку Class для организации объектов.
Мне она понравилась. Очень удобно.
Есть одно НО:
Раньше я всегда в начале класса писал var self = this и внутри всех методов использовал self вместо this.
Например:
function A(o) {
var self = this;
var init = function() {
self.setOptions(o);
};
this.setOptions = function(o) {
self.options = o;
};
init();
}
var a = new A({test: "foo"});
var b = new A({test: "bar"});
console.log(a.options); // foo
console.log(b.options); // bar
Теперь я начал использовать обертку Class, которую мне посоветовали.
Возникла проблема, которую я затрудняюсь решить:
var A = new Class(function() {
var self = this;
this.__construct__ = function(o) {
self.setOptions(o);
};
this.setOptions = function(o) {
self.options = o;
};
});
var a = new A({test: "foo"});
var b = new A({test: "bar"});
console.log(a.options); // bar (должно быть "foo"!)
console.log(b.options); // bar
Скорее всего я делаю что-то неправильно. Использовать this внутри методов неудобно, т.к. активно используется jquery и различные callback's, внутри которых this меняет свое значение.
Может быть есть решение проблемы? Заранее благодарен