码迷,mamicode.com
首页 > 其他好文 > 详细

闭包2

时间:2019-07-22 23:55:04      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:嵌套   cli   alert   垃圾回收机制   i++   机制   定义   tag   body   

 1 <body>
 2     <button>按钮1</button>
 3     <button>按钮2</button>
 4     <button>按钮3</button>
 5 <script>
 6     var btns = document.getElementsByTagName(‘button‘);
 7     for (var i = 0; i < btns.length; i++) {
 8         var btn = btns[i];
 9         (function (i) {
10             btn.onclick = function (ev) {
11                 alert(‘点击了‘ + (i + 1) + ‘个‘);
12             }
13         })(i)
14     }
15 </script>
 1  function fn1() {
 2      var num = 10;
 3      function fn2() {
 4        console.log(num);
 5      }
 6      return fn2;
 7   }
 8 
 9   fn1();
10   var f = fn1();
11   f();
12 内部函数获取外部函数的变量

闭包主要是为了解决局部变量无法长久的保存,而全局变量可能造成变量污染

垃圾回收机制

 1 <script type="text/html">
 2     function fn1() {
 3         var num = 10;
 4         function fn2() {
 5             num++;
 6             console.log(num);
 7         }
 8         return fn2;
 9     }
10 
11     var f = fn1();
12     f();
13     f();
14 
15     f = null  //指针指向
16 
17 </script>

闭包的产生是在嵌套函数定义执行完时就产生了(不是在调用的时候)

闭包的死亡f=null

 

 

小闭包:

(function(){})()

闭包2

标签:嵌套   cli   alert   垃圾回收机制   i++   机制   定义   tag   body   

原文地址:https://www.cnblogs.com/zhangzhengyang/p/11229066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!