函数柯里化

来源:6-4 编译入口(下)

鸡肋2016

2018-10-18

老师,你好。
关于这里函数柯里化的实现,我的理解,麻烦帮忙看下对不对!
编译最终都会执行 createCompileToFunctionFn 方法内的compile核心方法。compile方法需要用到baseOptions配置和baseCompile方法。compile会调用很多次,我们不希望每次调用compile都去传入baseOptions和baseCompile。就用闭包的方式让compile方法长久持有它们。
这样理解对吗?
长久持有它们的好处有哪些?比如把baseCompile通过柯里化把代码剥离出来使代码结构更加清晰。还是有啥好处不??

写回答

1回答

ustbhuangyi

2018-10-19

理解没啥问题,主要目的复用这些参数,不需要每次调用都传,代码更精炼,逻辑更清晰。

2
2
ustbhuangyi
回复
一群小鱼苗
柯里化和偏函数很多场景是配合使用的。如果硬要从概念上区分,那么柯里化是将一个多参数函数转换成多个单参数函数,也就是将一个 n 元函数转换成 n 个一元函数。是固定一个函数的一个或者多个参数,偏函数是将一个 n 元函数转换成一个 n - x 元函数。我觉得不用强记这些概念,理解它们的好处和使用场景才是最重要的。
2019-05-29
共2条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程