多语言展示
当前在线:571今日阅读:19今日分享:20

前端开发之路--关于JS代码的若干个小技巧(七)

这是本系列经验的第七篇,主要介绍JavaScript脚本的一些使用技巧,提供部分JavaScript代码段。
柯里化
1

柯里化,是函数式编程中的一个技巧,又称卡瑞化或者加里化,是把接收到多个参数的函数变换成接收单个参数且重复调用,持续返回并接收余下的参数。

2

首先看一种柯里化的简单实现。利用柯里化函数实现累加求和,这里可以利用闭包,每调用一次时返回一个新的函数,该函数接受新的调用,然后再次返回新的函数,直至返回最后的结果。下面两图中均可以实现3个变量值的累加,但是调用的方式不同。

3

如图所示为函数的调用方式,可以看到,一般的函数是将所有参数一次性传入,柯里化函数的参数是以多次调用传入的,所得到的效果是一样的。但是这里要注意,一般函数如果要实现,传入的参数个数是要提前定义好的,不太灵活,而柯里化可以灵活地处理参数的传入。(上图只是模拟柯里化的一种实现方式)

4

接下来介绍柯里化的通用实现。这里也是利用函数的隐式参数arguments的特性去读取参数,然后利用call/apply借调函数完成函数的调用。fn为需要柯里化处理的函数,处理后便可以多次调用传参了。

5

柯里化的另一种应用场景:延迟计算。首先将函数柯里化,然后累计传入的参数,直到得到执行指令(一般是传参为空)再执行。

6

JS的bind应用。JS方法中的bind方法也是应用了柯里化的理念,bind 方法 将第一个参数设置为函数执行的上下文,其他参数依次传递给调用方法,保证方法的执行的上下文不被改变。

推荐信息