javascript闭包的使用

今天学习 了下javascript语言,以前从未想过为什么要用匿名和闭包,对于js局部变量和全局的概念理解未深刻,考虑下面代码:

Js代码
  function f1(){
    var n=999;
    nAdd=function(){n+=1}
    function f2(){
      alert(n);
    }
    return f2;
  }
  var result=f1();
  result(); // 999
  nAdd();
  result(); // 1000


如果变量n被定义成全局变量,那么会一直被存放在内存里,除非浏览器关闭,但是有些情况我们不得不经常使用某些变量,那么使用闭包的方法则可以满足需要,但是需要注意的是:

由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。这里引用了网上一篇文章的内容:http://www.jb51.net/article/24101.htm

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。