Javascript 在设定的时间后销毁对象

Javascript 在设定的时间后销毁对象,javascript,Javascript,我一直在四处寻找这个,但发现一片空白 在javascript中,是否可以创建一个对象的实例,该对象有一个设定的生存时间,在该时间之后它将被销毁 一种情况是,每5秒将一个项目添加到一个数组中,并显示在可视化视图中,然后在查看一分钟后删除每个项目。我不太愿意每秒运行超时函数检查阵列以清除它们 OOP-FTW。为什么不创建某种自移除对象 function SelfRemover(){//constructor }; SelfRemover.prototype.addTo = function(arr

我一直在四处寻找这个,但发现一片空白

在javascript中,是否可以创建一个对象的实例,该对象有一个设定的生存时间,在该时间之后它将被销毁


一种情况是,每5秒将一个项目添加到一个数组中,并显示在可视化视图中,然后在查看一分钟后删除每个项目。我不太愿意每秒运行超时函数检查阵列以清除它们

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)
}
用法


每当您向数组中添加一个项时,请将计时器设置为1分钟,以便在调用时将其删除。有什么复杂的?(这个解决方案在技术上还远远不够优雅,但对于这样一个小问题来说根本不重要)如果你只需要每5秒添加一次,那么你只需要每5秒删除一次,当然?我不太确定你为什么不想使用超时功能。如果为设置的每个项目设置计时器,我如何为每个项目设置计时器?
var a = [];
setInterval(function(){new SelfRemover().addTo(a); console.log(a);}, 5*1000);