gpt4 book ai didi

javascript - 我可以通过将其映射值设置为 null 来让 javascript 对象从内存中删除自身吗?

转载 作者:行者123 更新时间:2023-11-30 16:33:08 25 4
gpt4 key购买 nike

当调用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com