gpt4 book ai didi

javascript - 从 JavaScript 中的局部变量释放内存

转载 作者:IT王子 更新时间:2023-10-28 23:28:58 25 4
gpt4 key购买 nike

我有一个 JS 函数,每隔几秒就会在页面上调用一次。这是一个 AJAX 更新的事情。

作为一个函数,我声明了局部变量。由于各种原因,我不想使用闭包或全局变量。

我从来没有考虑过这个,但是我需要在函数结束时释放/清除变量来释放内存还是 JS 会自动为我做这个?

最佳答案

一般来说,不会。用 var 声明的变量是本地的,在您返回时会被垃圾回收。如果省略 var 则变量是全局变量,在某些情况下使用 delete 关键字可能对全局变量有用,但通常最好使用声明所有变量var 无论如何都不会污染 window 命名空间。

delete 在使用基于原型(prototype)的继承时可能很有用,例如:

function myclass() {
this.variable = 'myvalue'
...
delete this.variable // finished with this variable
}
var inst = new myclass()

请记住,如果 inst 被删除或超出范围(垃圾收集),其中的所有属性也将被删除。 delete 也可用于从哈希表中删除项目:

var d = {}
d['blah'] = 'myvalue'
...
delete d['blah']

存在 一些 浏览器特定的垃圾收集错误。例如,IE 有时会在清理 DOM 元素和闭包等中的属性时遇到问题,尽管我相信在 IE8 中已经减少了许多这些问题。

关于javascript - 从 JavaScript 中的局部变量释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681511/

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