为了账号安全,请及时绑定邮箱和手机立即绑定

javascript关于闭包的面试题

javascript关于闭包的面试题

慕姐4208626 2018-08-03 17:41:23
function f1(){    var n=999;    nAdd=function(){n+=1}    function f2(){      alert(n);    }    return f2;  }  var result=f1();  result(); // 999  nAdd();  result(); // 1000在这段代码中,result()它一共运行了两次,第一次的值是999,第二次的值是1000。这证明了,函数f1中的局部变量n一直保存在内存中,并没有在f1调用后被自动清除。为什么会这样呢?尤其是第二次,为何输出的不是999呢?nAdd=function(){n+=1}又起到了什么作用呢?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 1217 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信