首页 > 代码库 > JS的闭包
JS的闭包
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的闭包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。