我可以有一个javascript对象从内存中删除自己设置它的映射值为空
Can I have a javascript object remove itself from memory by having it set its map value to null?
当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
,而是像这样删除映射中的属性:
delete GamesMap[this._id];
这样你就可以在游戏结束后彻底清理了
相关文章:
- 如何设置html元素填充的动画
- 如何在映射数组中添加换行符
- 需要帮助设置json数组
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 数组在递归方法中设置为null
- ng映射方向备选方案
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 无法通过数组映射绑定
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 使用Google'设置ID属性;s映射API
- ES6:在设置/映射迭代期间从集合/映射中删除元素是否危险
- 使用单击图像映射更改设置为背景的精灵图像的位置
- 如何为我使用映射插件创建的挖空可观察量设置验证
- 使用引导程序设置全屏leaflet.js映射
- 这里映射JavaScript API 3.0浏览器如何设置标记颜色
- 如何将字符映射到IE/Mozzilla密钥码,以便与Javascript密钥设置事件一起使用
- AngularJS/NgMap-在引脚设置更改时重新输入映射
- es6映射和设置复杂性,v8实现
- 我可以有一个javascript对象从内存中删除自己设置它的映射值为空
- 映射/设置与ie8工作的实现