码迷,mamicode.com
首页 > Web开发 > 详细

JS 的闭包

时间:2015-10-10 23:06:04      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

1.什么事闭包?

函数嵌套函数,内部函数可以引用外部函数的参数或变量,参数或变量不会被垃圾回收机制所收回,for example:

 1 function A() {
 2     var a = 1;
 3     function B() {
 4         alert(a);
 5     }
 6      return B;   
 7 }    
 8 
 9 var c = A();
10 c();

 

2.闭包有什么好处?

  1)变量可以常驻内存

  2)避免全局变量的污染

  3)私有成员的存在,for example

 1 var a = (function(){
 2     var i = 0;
 3     function func1() {
 4         i++;
 5         alert(i); 
 6     }
 7     function func2() {
 8         i++;
 9         alert(i);
10     }
11     return {b:func1, c:func2}
12 })();
13 
14 a.b();
15 a.c();

 

3.闭包的用法

  1)模块化代码

  2)循环中直接找到对应的索引

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script>
 7        window.onload = function(){
 8            var lis = document.getElementsByTagName(li);
 9            for (var i=0; i<lis.length; i++) {
10                (function(i){
11                    lis[i].onclick = function(){alert(i);}
12                })(i);
13            }
14        }
15     </script>
16 </head>
17 <body>
18 <ul>
19     <li>111</li>
20     <li>111</li>
21     <li>111</li>
22     <li>111</li>
23 </ul>
24 </body>
25 </html>

 

JS 的闭包

标签:

原文地址:http://www.cnblogs.com/aoun/p/4868421.html

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