JS_16闭包

闭包

  • 什么是闭包

    • 理解1:闭包是嵌套的内部函数
    • 理解2:闭包是包含被引用变量(函数)的对象
  • 闭包产生的条件

    1. 函数嵌套
    2. 子函数调用了父函数的数据
    3. 父函数被调用了(子函数不一定需要被调用,只需要执行函数定义即可)
  • 常见的闭包

    • 一个函数作为另一个函数的返回值执行
    • 一个函数作为另一个函数的实参传递
  • 闭包的生命周期

    • 内嵌函数的函数定义执行时创建
    • 赋值为null时销毁
  • 缺点

    • 内存泄漏
      • 产生原因:
        • 意外的全局变量未销毁
        • 闭包未销毁
        • 定时器会回调函数未销毁
      • 防止办法
        • 及时处理
        • 少用闭包
    • 内存溢出
      • 内存大量泄漏容易导致内存溢出
发布了62 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zjbyough/article/details/95244133
今日推荐