js闭包

作者: Zhou_qn | 来源:发表于2020-03-22 18:50 被阅读0次

    参考文章:https://www.cnblogs.com/itjeff/p/10106855.html

    闭包的本质就是在一个函数内部创建另一个函数。因为通常内部的函数可以访问外部的参数和变量,而外层是无法访问到内层的作用域下的变量,不同函数体之间的变量也不能互相访问,但我们想要在一个函数中也访问到另一个函数中的变量,闭包就能解决这样不能互相访问的问题。
    闭包的特点就是函数嵌套函数,函数内部可以引用函数外部的参数和变量,参数和变量不会被垃圾回收机制回收。

    闭包的两种主要形式:

    • 1.函数作为返回值
    • 2.函数作为参数传递

    闭包的好处与坏处:

    • 好处:

      • 1.保护函数内部变量的安全,实现封装,防止命名冲突
      • 2.在内存中可以维持一个变量,可以做缓存
      • 3.匿名自制性函数可以减少内存的消耗
    • 坏处:

      • 被引用的私有变量不能销毁,增大了内存的消耗,解决方法:可以再用完的时候赋值为null
      • 由于闭包是跨作用域的,会导致性能的损失,可以通过把跨作用域变量存储在局部变量中,然后直接访问局部变量,减少执行速度的影响

    相关文章

      网友评论

          本文标题:js闭包

          本文链接:https://www.haomeiwen.com/subject/qdomyhtx.html