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

javascript关于闭包的面试题

javascript关于闭包的面试题

MYYA 2018-10-11 14:15:00
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}又起到了什么作用呢?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 445 浏览
慕课专栏
更多

添加回答

举报

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