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 

  • 相关阅读:
    POSIX、XNU
    面向切面编程
    盗链
    django restframwork教程之Request和Response
    django restframework 教程之Serialization(序列化)
    Django restframwork
    saltstack远程执行命令.md
    saltstack安装
    django实现瀑布流、组合搜索、阶梯评论、验证码
    django文件上传和序列化
  • 原文地址:https://www.cnblogs.com/Antwan-Dmy/p/10716779.html
Copyright © 2011-2022 走看看