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

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

  • 相关阅读:
    利用python在windows环境下爬取赶集网工作信息。
    扔骰子
    python 输入英语单词,查看汉语意思
    获取指定日期的上一个月日期
    爬取代理IP,并判断是否可用。
    递归实现 十进制转换其他进制(2-16)
    特殊回文数
    python 实现无序列表
    python 实现剪刀石头布(三局两胜)
    python 实现简单语音聊天机器人
  • 原文地址:https://www.cnblogs.com/DongZixin/p/6979490.html
Copyright © 2011-2022 走看看