![]() |
1
6
变量的作用域是函数,而不是if/else/for/while/etc.块。每次你打电话
您正在创建一个新函数(新范围)。此新函数引用
这不足以泄露内存。(
但是,你创造了一个
这个
任何人,如果我犯了什么错误,请纠正我。 对于解决方案,不要使用内部函数!
|
![]() |
2
2
虽然答案已被接受,但我认为这也可以完成这项工作:
内存泄漏的原因:在匿名函数中创建并返回一个闭包,然后保持活动,但是
未收集垃圾
自从
因此,解决方案可以简单到提供 词法范围 ,如上所示 |
![]() |
3
0
如果从链接中删除onclick属性,它会泄漏吗? 您可以尝试删除重复的onclick并用事件委托替换它。 而且,所有的变量似乎都在全局范围内——这不应该像导致您所看到的问题那样糟糕,但是无论如何,您都应该解决这个问题。 |
![]() |
4
-2
我真的不能告诉你
为什么?
据说是内存泄漏,但这段代码的功能相当复杂。这条线似乎非常可疑和多余:
把它简化一点,确定变量的范围如何:
不过,这仍然需要大量的DOM操作,在速度较慢的JavaScript引擎上可能需要一段时间。 |
![]() |
CocoaMix86 · 变量超出作用域后未回收内存[重复] 5 月前 |
![]() |
Yousef Dawood · javascript中的不变性是什么意思 11 月前 |
![]() |
SkyBlue · Java Spring服务的内存/垃圾收集器问题 11 月前 |