js 调用内存分析

let theThing = null;

let replaceThing = function () {
  let originalThing = theThing;
  let unused = function () {
    if (originalThing)
      console.log("hi");
  };

  theThing = {
    longStr: new Array(10000).join('*'),
    someMethod: function () {
      console.log(1111);
    }
  };
};

setInterval(replaceThing, 1000);

image.png
图片是执行代码的内存快照,我的问题是:

为什么someMethod会引用originalThing,造成内存泄漏?

阅读 1.5k
2 个回答

这个好像是执行上下文的关系,不是相互引用的关系

加上 originlThing = null.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题