zoukankan      html  css  js  c++  java
  • 掌握闭包closure (含义及优缺点)

    个人认为闭包其实非常好理解,我们一起去认识什么是闭包。

    在javascript脚本语言中,变量的作用域只有两种,一种是全局变量,一种是局部变量。

    全局变量的函数可以在整个javascript脚本语言中被引用,但是局部变量只存在于声明这个变量的函数内部,外部函数无法访问。

    也就是说局部变量可以访问外部变量,外部函数无法访问局部变量。

    在js中,只有在声明这个变量函数内部的子函数才能读取局部变量。
    所以当我们需要得到函数内的局部变量时,就只能在函数的内部再定义一个函数,且这个子函数不接受任何参数。这就是闭包。它是能够读取其他函数内部变量的函数,把函数内部和外部接连起来的一座桥梁

      闭包的用途:
    1.可以读取其他函数内部的变量。
    2.让变量的值始终保持在内存中。
      闭包的好处:
    1.不增加额外的全局变量。
    2.执行过程中所有变量都是在匿名函数内部。
      闭包的缺点:
    1.闭包会使得函数中的变量都被保存在内存中,内存消耗大。
    不能随意滥用闭包,否则会照成网页的性能问题,在IE中
    可能会导致内存泄漏,解决方法是,在退出函数之前,把不使用
    的局部变量全部删除
    2.闭包会在父函数外部,改变父函数内部变量的值。
    不能随便改变父函数内部变量的值。


    原文:https://blog.csdn.net/DreamsTom/article/details/53857477 

  • 相关阅读:
    走读OpenSSL代码从一张奇怪的证书说起(二)
    从数学到密码学(十八)
    从数学到密码学(十七)
    走读OpenSSL代码从一张奇怪的证书说起(一)
    从数学到密码学(十六)
    从数学到密码学(十五)
    从数学到密码学(十三)
    从数学到密码学(十九)
    从数学到密码学(十四)
    关于Terracotta DSO 安装
  • 原文地址:https://www.cnblogs.com/Antwan-Dmy/p/10716779.html
Copyright © 2011-2022 走看看