闭包的概念

闭包:定义在一个函数内部的函数

因此

  1. 可以访问外部函数的变量,
  2. 其内部变量只能内部可访问

为什么要使用闭包?

  1. 闭包时块级作用域,可以定义自己的变量,避免变量命名冲突,污染外部变量 (使用场景一)
  2. 封装私有变量,对外暴露get,set方法或其中一种(使用场景二)
  3. 保存外部函数的变量(使用场景三)

使用闭包需要注意:

使用场景三:
当闭包被赋值给一个生命较长的变量时,其所依赖的父函数的变量也被长时间保存在内存中,占用内存,

因此不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。必要时需要将没用的局部变量清除,

如普通数据类型变量赋值为undefined,对象的属性可以使用delete删除某对象属性或者方法

原文地址:https://www.cnblogs.com/baixinL/p/14086286.html