javascript - 我的对象是否被覆盖并处置

标签 javascript memory-leaks

使用 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/

相关文章:

javascript - Bootstrap 多选按钮宽度问题

javascript - Polymer JS 与 Rails Turbolinks 冲突

c - 释放未分配的指针

delphi - Delphi 应用程序中的内存泄漏。如何正确处理对象和字符串?

通知服务中的android内存泄漏

java - 如何在 Java 中实现没有资源泄漏警告的 Stream<E>

javascript - d3.js 力导向图保持恒定的链接距离

javascript - 导出未使用的函数以进行 linting

php - 解决 PHP 内存泄漏

javascript - 使用 Javascript 实现购物车?