闭包:
function a(){
var i=0;
function b(){
alert(++i);
}
return b;
}
var c = a();
c();
这段代码有两个特点:
1、函数b嵌套在函数a内部;
2、函数a返回函数b。
这样在执行完var c=a()后,变量c实际上是指向了函数b,再执行c()后就会弹出一个窗口显示i的值(第一次为1)。这段代码其实就创建了一个闭包,为什么?因为函数a外的变量c引用了函数a内的函数b,就是说:
当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个闭包。
js代码为什么要写成这样了?
http://www.javaeye.com/problems/11644
深入理解Javascript闭包(closure)
javascript 避免闭包引发的问题
http://www.jb51.net/article/17497.htm
js面向对象--理解闭包
http://hi.baidu.com/heroguang/blog/item/1c006ff4904c00d1f2d385ca.html
面向对象的 Javascript 语言特性:闭包
http://www.cnblogs.com/zitiger/archive/2007/06/08/776777.html
JAVA 需要引入闭包吗
http://www.javaeye.com/wiki/topic/406229
PHP 5.3 将加入闭包语法
http://www.javaeye.com/news/5885-php-5-3-will-add-closure-grammar
js闭包
http://www.javaeye.com/topic/349458
IE下闭包引起跨页面内存泄露探讨
http://www.javaeye.com/topic/180611?page=1