闭包&柯里化

闭包:

 闭包是指    有权访问另一个函数作用域中的变量    的函数。

 简单的来说  就是 一个函数在执行过程中 返回另一个函数对象 (引用类型   一般都是函数)

如何形成闭包?

     1. 在函数内容中, 返回一个引用类型(数组, 对象, 函数, 以函数为主)

     2. 返回的引用类型(数组, 对象, 函数, 以函数为主), 使用函数中的局部作用域变量

     3. 在函数的外部, 有变量来引用 引用类型

     函数在执行过程中返回了另一个函数, 该函数使用父函数中的变量或方法, 导致返回的函数通过作用域链一直引用父作用域的AO对象导致父作用域的AO对象一直得不到释放

优点:

      1. 闭包中的数据只要不释放,可以一直存储(长时间存储数据)

      2. 可以在函数外访问函数内的数据

      3. 减少全局变量的使用 (模块化) 

缺点:

     1. 父作用域的AO对象一直得不到释放,占内存; 如果闭包使用频率过高会导致内存泄漏

     2. 函数外可以访问函数内的数据,不安全

柯里化(Currying)

是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术

一、什么是函数柯里化

函数柯里化就是我们给一个函数传入一部分参数,此时就会返回一个函数来接收剩余的参数。

二、简单的柯里化的实现

没有柯里化实现的案例

将其转化为柯里化的案例

上述代码可简写为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值