У меня есть код:Почему функция, добавленная setInterval, перестает выполняться?
function Creature(id){
self = this;
this.lifecycle = {};
this._cid = id;
this.lifeInterval = setInterval(function(){
_.each(self.lifecycle,function(lifecycleItem){
if (lifecycleItem.active) { lifecycleItem.execute() };
});
},1000);
}
Creature.prototype.run = function() {
self = this;
this.lifecycle.run = {
active : true,
execute : function(){
console.log(self.cid + " is running");
}
}
};
Если я пытаюсь создать новую переменную с именем, например sampleCreature, и выполнить его метод Run():
var sampleCreature = new Creautre(1);
sampleCreature.run();
В консоли появится сообщение:
1 работает
, который повторяется каждую секунду. Все хорошо.
Но если я добавлю новое существо с любым другим именем - сообщение в консоли перестанет повторяться, пока я снова не воспользуюсь методом run() на одном из существ.
И еще одна проблема - выполнение метода run() для первого существа прекращает выполнение этого на другом.
Спасибо, это помогает. Я должен больше узнать о глобальных и локальных переменных и его использовании. – AlexFreem