Как вызвать по таймеру метод из другого метода объекта в javaScript?

Рейтинг: 2Ответов: 1Опубликовано: 28.06.2011

Есть вот такой код (почти все лишнее выкинуто): создается объект класса Оbj и запускается метод инициализации. Сейчас понадобилось добавить setInterval() в этот метод инициализации, чтобы один из методов выполнялся регулярно по таймеру.

Вопрос: подскажите как вызвать метод process() в setInterval(), который лежит методе init() этого же объекта? И возможно ли это вообще?

<script type="text/javascript">

    function Obj(id) {
        this.id = id;
        this.init = function() {
            setInterval('this.process()', 1000);
        }
        this.process = function() {
            // do something
        }
    }

    var Obj1 = new Obj('some_id');
    Obj1.init();

</script>

Я понимаю, что могу вызвать его setInterval('Obj1.process()', 1000); после создания класса. Но, хочется задать этот таймер именно внутри объекта.

Ответы

▲ 4Принят

Например, вот так

function Obj(id) {
    var self = this;
    this.id = id;
    this.init = function() {
        setInterval(function() {
            self.process();
        }, 1000);
    };
    this.process = function() {
        // do something
    };
}