26 闭包

  • 闭包的概念

    • 函数嵌套函数,被嵌套的函数称为闭包函数

  • 闭包的作用

    • 可以在函数体外使用局部变量(浅显一点的理解)

    • 属性和方法都是有共有和私有的要求

      • 通常来说,所有的属性都是私有的,所有的方法都是共有的,

      • 外界修改私有属性应该只能通过类提提供的公用方法来实现

    • 闭包的柯里化

      • 只有一个参数,返回值是一个函数的函数

      • 作用

        • 柯里化实际是把简单的问题复杂化了,但是在复杂化的同时,我们使用函数拥有了更多的自由度

        • 对于函数自由的处理,正是柯里化的核心所在,柯里化的核心是降低通用性,提高适用性

  • 闭包的实现

    • 在父函数中定义一个局部变量(就是沙盒变量)和一个子函数,在子函数中操作沙盒变量,将子函数作为父函数的返回值,在外界通过全局变量来绑定父函数的返回值,从而实现了闭包,

  • 闭包的缺陷,闭包会打破垃圾回收机制,可能会造成内存泄漏

    • 垃圾回收机制

      • 对象在创建后需要销毁空间,而销毁空间的工作是由垃圾回收机制来完成的,称为GC机制

      • 1.引用计数法

        • 在程序的任何位置使用到了该变量,计数器就+1,停止了使用就-1,

          • 当使用a变量的代码块销毁时,则计数器-1,当计计数器再次减到0时,该变量销毁

        • 优点:简单,概念清晰,效率高

        • 缺点:遇到循环引用计数法无法实现

      • 2.标记法

        • 一个变量进入该作用域是,给一个标记,离开该作用域时收回标记,然后销毁

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值