2013-11-08 4 views
4

Я искал вокруг этого, но оказался пустымуничтожить объект после установленного времени

возможно в JavaScript, чтобы создать экземпляр объекта, который имеет установленное время, чтобы жить, после чего она будет быть уничтожен?

В случае, если элемент добавляется к массиву каждые 5 секунд и отображается на экране, каждый элемент следует удалить после того, как он был на вид в течение минуты. Я не решаюсь запустить функцию тайм-аута, проверяя массив каждую секунду, чтобы очистить их.

+0

Всякий раз, когда вы добавляете элемент в массив, установите таймер на 1 минуту позже, что удаляет его при вызове. Что сложного в этом? (это решение далека от технически элегантного, но для такой маленькой проблемы размера, которая не должна иметь значения вообще) – Jon

+0

Если вы добавляете их только каждые 5 секунд, вам нужно их удалять каждые пять секунд, верно? – lonesomeday

+1

Я не совсем уверен, почему вы не хотите использовать функцию таймаута. Если вы установили таймер для каждого элемента, который вы установили. – CaptainCarl

ответ

0

OOP FTW. Почему бы не создать какой-то объект самоиспускания?

function SelfRemover(){//constructor 
}; 

SelfRemover.prototype.addTo = function(arr) { 
    var me = this; 
    arr.push(me); //adding current instance to array 

    setTimeout(function() { //setting timeout to remove it later 
     console.log("Time to die for " + me); 
     arr.shift(); 
     console.log(arr); 
    }, 60*1000) 
} 

Использование

var a = []; 
setInterval(function(){new SelfRemover().addTo(a); console.log(a);}, 5*1000); 
Смежные вопросы