javascript - 为什么下面这段代码会出现内存泄露?
phpcn_u1582
phpcn_u1582 2017-05-19 10:31:11
0
1
324
var theThing = null;
var replaceThing = function () {
  var originalThing = theThing;
  var unused = function () {
    if (originalThing)
      console.log("hi");
  };

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

setInterval(replaceThing, 1000);

问题1:函数在创建的时候声名上下文,在执行的时候将局部变量更新置作用域链中,作用域链在执行的时候包含函数内部的局部变量,比较疑惑的是unused函数未被执行,怎么知道unused函数一定会引用originalThing的?
问题2:这段内存泄露怎么解释,希望大牛们能解释地详细一点?

phpcn_u1582
phpcn_u1582

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!