首页 > 技术文章 > JavaScript 闭包简单定义

cntian 2020-08-20 11:26 原文

满足以下特点的叫做闭包:

  1. 函数嵌套函数

  2. 内部函数使用外部函数的形参和变量(函数内部可以访问外部函数的作用域)

  3. 被引用的形参和变量就不会被【垃圾回收机制所回收】(保存局部变量)

  4. IE9之间版本的内存泄露问题。《JavaScript高级编程》书中建议:由于闭包会携带包含它的函数的作用域,因此会比其他函数占用更多内容,过度使用闭包,会导致内存占用过多。也就是说可用的内存减少,这就是内存泄漏。

好处:

  1. 希望一个变量常驻在内存当中

  2. 避免全局变量污染

  3. 可以声明私有成员 

用法:

  1. 模块化代码

  2. 在循环中直接找到对应元素的索引

  3. 立即执行函数 (function(){}())

推荐阅读