javascript - 这个Javascript会导致内存泄漏吗?

标签 javascript memory

请注意,在以下代码中,子级获取对其父级的引用。当对父级的原始引用设置为 null 时会发生什么?由于 child 仍然有积极的引用, parent 是否会留下来?

Javascript

var parent = function() {
  var self = this;
  self.runme = function() {
    document.getElementById('output').innerText = 'run me';
  }

  self.child = new child(self);

  return self;
}
var child = function(parent) {
  var self = this;
  var parent = parent;
  self.event = function() {
    parent.runme();
  }
}
var p = new parent();
p.child.event();
p = null;

HTML

<div id="output">
  old value
</div>

fiddle https://jsfiddle.net/jeljeljel/8fvy5r4f/

最佳答案

var p = new parent();
p.child.event();
p = null;

最终,父级和子级都将被垃圾收集,因为父级和子级都将不再“可访问”。这里没有内存泄漏。假设您正在处理现代 JavaScript 解释器。

关于javascript - 这个Javascript会导致内存泄漏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565131/

相关文章:

javascript - 为什么变量 'name' 在第一次使用后不需要初始化 [Javascript]

javascript - jsFiddle 中的谷歌地图

java - CentOS 内存可用性

c++ - 在没有 malloc 和 free 的情况下存储和回收堆分配的可变大小对象

javascript - 谷歌地图可以设置为慢速恒平移吗?就像一场全局革命?

javascript - 动态改变 jQuery 进度条的颜色

javascript - 在 reactjs 中的渲染方法中访问状态值

c - 为结构数组分配动态内存

c - 从/proc/[pid]/pagemap 获取物理地址失败

java - 我可以在 Windows 64 位平台上安全使用的最大 Java 堆大小是多少?