闭包
原文 http://blog.csdn.net/fanbin168/article/details/77543266
http://blog.csdn.net/yzhm57622816/article/details/70210810
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures
闭包---闭包就是能够读取其他函数内部变量的函数
闭包例子1
1 function init() { 2 var name = "Mozilla"; // name 是一个被 init 创建的局部变量 3 function displayName() { // displayName() 是内部函数,一个闭包 4 alert(name); // 使用了父函数中声明的变量 5 } 6 displayName(); 7 } 8 init();
闭包例子2
1 (function(a){ 2 console.log(a); 3 })(123)
闭包例子3
1 var result = foo(1)(2); 2 3 console.log(result); 4 5 function foo(a){ 6 return function(b){ 7 return a+b; 8 } 9 }
注意:由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。