Js闭包
首先,从百度找到很多资料这样讲的:
闭包的两个特点:
1、作为一个函数变量的一个引用 - 当函数返回时,其处于激活状态。
2、一个闭包就是当一个函数返回时,一个没有释放资源的栈区。
1 function a(){ 2 var i=0; 3 function b(){ 4 alert(++i); 5 } 6 return b; 7 } 8 var c = a(); 9 c();
简单的讲: 定义了方法a() 而a()有内部方法b() 并返回b
然后定义变量c 那么c就相当于b() 这样执行 则返回 1 再执行一次c() 则返回2
这里会与变量的作用域扯上点关系。
好了正题:看了下jQuery 的源码,用的闭包,而又不是普通的闭包,是匿名闭包。所以继续找
这里看下:
1 var a = "hello js"; 2 (function($){ 3 //$="hello 我的匿名闭包学习!"; 4 alert($); 5 })(a);
是的 !匿名闭包就是这样调用的