zoukankan      html  css  js  c++  java
  • 关于闭包

    对于闭包,我是这么认识的,在我们这个js当中呢,变量分为两种,一种叫全局变量,一种叫局部变量。在这个变量访问的过程中,全局变量没有问题,在任何地方都可以访问到,麻烦就麻烦再局部变量,局部变量默认情况下在函数外边是访问不到的,那这个事情怎么办呢,我们就用闭包开始了。
    我可以在这个函数内部,再给他定义一个函数,这个就是二重函数,我们分为父和子两个函数,那么父函数内声明的变量,在子函数内是可以访问到的。而子函数的这个方法我们认为这是一个特权函数,他可以访问父函数中的变量,以及其他方法,这就是闭包产生的由来 。
    那他解决的问题是什么呢,是因为咱们有时在写一些插件或者写一些东西的时候,确实是需要调用父方法中的局部变量的,那这个时候只能对外写一个接口,就是这个子函数。
    还有一个,面向对象的三大特征里的封装也是要用到闭包的,你怎么把这个变量封装起来不让外面访问,提高代码安全,那我们只能用闭包。
    闭包的优点总结下来就是:1解决了局部变量不能访问的问题,2体现了面向对象编程中的封装思想。
    虽然闭包有优点,但他同时也存在缺点:1闭包会浪费很多内存资源2闭包会导致内存泄漏,同时内存的数据能遭受攻击,容易造成机器的崩溃。
    最后他也同时存在针对缺点的解决方法:1少用闭包2手动清空(也就是说我声明一个方法函数,让变量等于null,最后在执行后调用那个方法)
    这就是我对闭包的理解

  • 相关阅读:
    光学
    ZYNQ学习笔记2——实例
    ZYNQ学习笔记
    AD使用技巧
    关于浮点运算的一点见解
    解决ccs不能同时导入两个相同工程名的问题
    multisum14 快捷键
    你的进程为什么被OOM Killer杀死了?
    Linux下哪些进程在消耗我们的cache?
    linux 安装python3.7.5
  • 原文地址:https://www.cnblogs.com/DongZixin/p/6979490.html
Copyright © 2011-2022 走看看