前端js基础之闭包

86 阅读1分钟

一、闭包的使用环境

既重用变量又保护变量不被污染的一种编程方法。 只要希望给一个函数,保存一个即可反复使用,又不会被 外界污染的专属局部变量时,就用闭包

二、什么是闭包

闭包也是一个对象 闭包就是每次调用外层函数时,临时创建的函数作用域对象。 为什么外层函数作用域对象能留下来?因为被内层函数对象的作用域链引用着,无法释放。

如何使用闭包

1. 用外层函数包裹要保护的变量和使用变量的内层函数。 2. 在外层函数内部返回内层函数对象。 外层函数返回内层函数的方法: 3种:

  • return
  • 强行赋值为全局变量
  • 将函数包裹在对象或数组中返回。 3. 调用外层函数用变量接住返回的内层函数对象。

闭包如何形成

外层函数调用后,外层函数的作用域对象,被返回的内层函数的作用域链引用着,无法释放,就形成了闭包对象

闭包的缺点

由于闭包藏的很深几乎找不到,所以,极容易造成内存泄露。

如何释放不用的闭包对象

将保存内层函数对象的变量赋值为null,导致函数名变量与内层函数对象分开