闭包总结

来源:互联网 发布:知乎如何编辑问题 编辑:程序博客网 时间:2024/06/04 19:56

一.概念

闭包是指在函数声明时的作用域以外的地方调用函数

二.使用场景

1.函数作为返回值

function fn() {   var max = 10;   return function bar(x) {      if(x > max) {              console.log(x);          }      }    }    var f1 = fn();    f1(15);// 15 bar函数作为返回值,赋值给f1变量。执行f1(15)时,用到了fn作用域下的max变量的值。

2.函数作为参数被传递

var max = 10,   fn = function(x){       if(x > max) {           console.log(x);       }   }   (function(f){       var max = 100;       f(15); // fn函数作为一个参数被传递进入另一个函数,赋值给f参数。执行f(15)时,max变量的取值是10,而不是100。   })(fn)

三.闭包的缺点

闭包占内存,需要定期销毁,直接赋值为null
原创粉丝点击