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

JS的闭包

时间:2014-08-26 16:59:06      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   使用   io   ar   div   cti   

  javascript的闭包概念一直让我觉得莫名的疑惑,现在看了下jquery的源码中的(function(window,b){})(window)觉得很奇怪,这种写法从来没有接触过,然后特意去看了下这是一种闭包的概念,理解起来就是先是一个匿名函数建立,function(){}然后window作为参数执行,这个经过测试,确实这样实现的,现在重新去查找关于闭包的概念,我突然发现和java中的内部类很相似,可以在父域中使用它的属性和方法,在闭包中定义出来的形参是不能外部使用的,undefined;

  

<script>
b=0;
a=100;
(function(a){alert(a);var b=a;})(5)//alert(5)
console.log(b);//b=0;
</script>

所以这里我们可以发现在闭包中的参数是不会影响到外部的内容,这就是jq为了防止与其他的代码冲突,选择了闭包,其实我们还经常看到利用函数来使用闭包的

<script>
b=0;
a=100;
ac=function(){
 function cc(){
 var b=10;
alert(b);//alert(10)
}
cc();
}
ac();
console.log(b);//b=0
</script>

 讲闭包理解成内部类,可以访问包含它的父域的属性和方法 

JS的闭包

标签:style   blog   color   java   使用   io   ar   div   cti   

原文地址:http://www.cnblogs.com/gavinjunftd/p/3937384.html

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