使用 JavaScript。
我像这样声明一个图像变量:
var myIMG = new Image();
我加载了 100 张图像,如下所示:
for (var test =0 ; test < 100; test++)
{
myIMG.src = null;
myIMG.src = {get new image from server somehow}
}
还有这个:
for (var test =0 ; test < 100; test++)
{
myIMG = new Image();
myIMG.src = {get new image from server somehow}
myIMG.src = null;
delete myIMG
}
(代码用于测试目的)
减少内存消耗的正确方法是什么?
谢谢
最佳答案
您可能有兴趣了解 JavaScript 没有 for
循环的本地作用域。它的范围是基于功能的。因此,您不应在函数中多次重新声明 var myImg
。
回到你的代码,我建议你只声明一个new Image()
(即在循环之外),这应该更有效
var i, myImg = new Image();
for(i = 0; i < 100; i++) {
myImg.src = getNewSource();
}
delete
属性用于从对象中删除项目。例如:
var myObj = { a: 2, b: 3 };
delete myObj.a;
// myObj will now be { b: 3 }
但是,这并不一定要释放内存,而是释放对象中该项的引用。内存由 JavaScript 垃圾收集器收回(并且您无法在代码中触发此操作)
希望这有帮助
关于javascript - 我的对象是否被覆盖并处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23391361/