Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Проблема со статичными полями класса в mootools


Автор: AztEK 31.10.2008, 17:31
Добрый день. Работая с реализацией ООП в mootools, столкнулся со следующей проблемой.
Код

var Test = new Class({
    things: [],
    initialize: function(a) {
        this.things.push(a);
    },

    add: function(a) {
        this.things.push(a);
    }
});


var a = new Test(1);
a.add(2);
            
var b = new Test(3);
b.add(4);
            
a.things.each(function(t) {
    alert(t);
});


Ожидается, что скрипт выведет 1 и 2. На деле же выводится 1, 2, 3, 4. Похоже, что поле этого псевдо-класса работает как статическое.
Подскажите, как можно избежать такого поведения. Спасибо.

Автор: AztEK 5.12.2008, 02:53
А решение-то оказалось элементарным.
Предыдущий код надо было переписать вот так:
Код

var Test = new Class({
    initialize: function(a) {
        this.things = [];
        this.things.push(a);
    },
    add: function(a) {
        this.things.push(a);
    }
});

Всем столкнувшимся с подобной проблемой, рекомендую почитать о http://habrahabr.ru/blogs/webdev/38642/, многи вещи сразу проясняются.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)