当调用 kill game 时,游戏对象是否会从内存中删除自身?
var GamesMap = {};
var count = 0;
function Game (players, privateGame) {
if (privateGame) this.privateGame = true;
else this.privateGame = false;
this._id = count++;
this.players = players;
this.judge = this.setJudge();
this.killGame() = function() {
GamesMap[this._id] = null;
}
}
最佳答案
如果没有对该特定 Game
对象的其他引用(包括事件处理程序和其他类似的持久事物),则通过清除其在 GamesMap 中的引用来清除对其的最后引用
将在 killGame()
方法完成执行时使其符合垃圾回收条件。但是,您能够调用 obj.killGame()
这一事实意味着其他人拥有对它的引用,因此也需要释放该引用。
我建议您不要将属性设置为 null
,而是像这样实际删除 map 中的属性:
delete GamesMap[this._id];
所以你在游戏结束后彻底清理。
关于javascript - 我可以通过将其映射值设置为 null 来让 javascript 对象从内存中删除自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049781/