Показать сообщение отдельно
  #1 (permalink)  
Старый 05.10.2009, 14:07
Аватар для maxval
Интересующийся
Отправить личное сообщение для maxval Посмотреть профиль Найти все сообщения от maxval
 
Регистрация: 01.10.2009
Сообщений: 15

Как осуществляется инициализация переменных
var Counter = function(min,sec,interval,elem){
    this.elem = elem;
    this.countVal = Math.round(min*60) + Math.round(sec);
    this.interval = interval;
    this.isStarted = false; 
    this.isPaused = false;
}

Counter.prototype.timer = null;

Counter.prototype.start = function() {
    //если таймер не стартовал
    if (!this.isStarted){      
        var that = this;
        this.isStarted = true;
        this.timer = setTimeout(function() { that.printCounter();},this.interval);
    } 
    else{
        return true;
    }
}


counter = new Counter(2,5,500,time);


после выхода из конструктора объект имеет следующие свойства и методы

countVal 125
elem div#time.timerStarted
interval 500
isPaused false
isStarted true ??
timer 2 ??
printCounter function()
resume function()
start function()
stop function()

свойства объекта timer не null
isStarted не false

я попробовал убрать из Counter.prototype.start
this.isStarted = true; и тогда свойство isStarted осталось false

вопрос такой. насколько я понял

Свойство prototype


Значением свойства prototype является ссылка на прототип данного объекта. Прототип используется для динамического добавления или удаления свойств и методов класса объектов.

но почему же при конструировании объекта конструктор проходит по веткам методов и устанавливает встретившиеся свойства?
как тогда избежать такой ситуации?

при изучении объектной модели руководствовался
http://karaboz.ru/?p=6
http://www.arininav.ru/js/js07.htm#ref3715
Ответить с цитированием