Показать сообщение отдельно
  #1 (permalink)  
Старый 27.06.2014, 13:58
Аватар для Jekel
Профессор
Отправить личное сообщение для Jekel Посмотреть профиль Найти все сообщения от Jekel
 
Регистрация: 20.11.2009
Сообщений: 257

setInterval внутри обьекта
Вопрос №1

Чего this._timerBeep() выполняется только один раз?
var Module = sys.Class.extend({

    _init: function() {
        console.log('_init!');
        setInterval(this._timerBeep(), 1000);
    },

    _timerBeep: function(){
        console.log('_timerBeep!');
        this.update();
        this.draw();
    },

    update: function() {
        console.log('update!');
    },

    draw: function(){
        console.log('draw!');
    }

});

Module2 = Module.extend();
new Module2();


Console log:

_init!
_timerBeep!
update!
draw!

Вопрос №2

Как this передать в анонимную функцию...сделать что-то типа этого..

var Module = sys.Class.extend({

    _init: function() {
        console.log('_init!');
        setInterval(function(){
                console.log('_timerBeep!');
                this.update();
                this.draw();
            }, 1000);
    },

    update: function() {
        console.log('update!');
    },

    draw: function(){
        console.log('draw!');
    }

});

Module2 = Module.extend();
new Module2();


Console log:

_init!

_timerBeep!
TypeError: this.update is not a function
this.update();

_timerBeep!
TypeError: this.update is not a function
this.update();

_timerBeep!
TypeError: this.update is not a function
this.update();
Ответить с цитированием