在JavaScript中銷燬「class」實例的適當方式是什麼?我使用節點「需要」我的類和它的原型。而且我注意到,將該類的實例設置爲等於null
似乎並未實際銷燬該實例。試圖摧毀它的「class」實例仍然存在?
如:
類
function coolClass(){
this.bob = 'Hey, this is Bob. I should be destroyed, right?!';
this.init();
console.log('Cool class has been initialized!');
}
coolClass.prototype.init = function(){
var self = this;
this.culprit = setInterval(function(){
console.log(self.bob);
},1000);
}
exports.coolClass = coolClass;
創建&試圖摧毀實例
var coolClass = require('coolClass');
var instance = new coolClass();
setTimeout(function(){
instance = null;
},5000);
我的期望是,一旦定時器的功能是跑了,在coolClass
實例將是destro YED;但是,似乎我錯了。
關於如何完全刪除實例的任何想法?
謝謝!
那麼清除類中的所有間隔和超時,然後將實例變量設置爲'null'? – Justin
是的,刪除所有仍然引用它的異步回調,並刪除對它的所有其他引用。大多數情況下,你不需要明確地將其設置爲'null',因爲當函數退出時變量剛剛超出範圍。 – Bergi
謝謝!現在完美的工作! – Justin