定义:当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的其它变量,且返回的这个函数在外部被执行,就产生了闭包。
特点:
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收
var test = (function (i) {
return function () {
alert(i *= 2);//alert弹出的结果都会转化为字符串
}
})(2);
test(5);
结果:‘4’
var a = 0;
b = 0;
function A(a) {
A = function (b) {
alert(a + b++);
};
alert(a++);
}
A(1);
A(2);
结果: '1' , '4'
缺点:比普通函数更占用内存,会导致网页性能变差,在IE下容易造成内存泄露。