闭包

 原文   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中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。

posted @ 2018-02-27 22:15  最好的年纪  阅读(100)  评论(0编辑  收藏  举报