发表于: 2020-01-08 23:01:22
0 1472
今日完成的事
柯理化函数
什么叫做柯理化函数,表面上看是一个大函数返回一个小函数,实际上的思想是预先性处理,比如想在某个事件行为或者多长时间以后执行的方法,这个方法想要改变他的this,预先传递一些参数,这种预先处理就叫做柯理化函数,柯理化函数解决的问题就是预先处理。
柯理化函数的思想:利用闭包的机制,把一些内容事先存储和处理,等到后期需要时来用
举一个例子。 有一个div标签。
然后把一个对象赋值给一个变量obj,在建立一个函数赋值给box
现在有一个需求是当点击box时这个绑定函数this指向obj,并且传一个实参200
利用柯理化函数的思想就是在fn这个函数外面用另一个匿名函数给他包住,然后改变他的this指向和传参,这就是柯理化函数,在执行放哪之前就根据需求对这个函数做一些改变。
最后写一个柯理化函数
也可以用重写bind的方法
单例模式
在没有框架的时候如果想要模块化,一般要把当前模块要写的方法利用闭包的原理
全部封装在一起, 这就是单例模式举个例子假如有两个模块oy和ot那么把这两个模块里面的方法全部用自执行函数封装到一起,然后return出来就可以了
这就是单例模式
Compose函数
什么叫做 compose函数,假如有3个函数fn1 fn2 fn3
现在有一个需求 fn1执行传一个5,然后把fn1的执行结果传给fn2,然后把fn2的执行结果传给fn3,现在写一个函数就可以实现这个效果,这就是Compose函数。
首先利用柯理化函数思想
然后判断传递进来的函数有几个吧没有传函数和传了1个函数的情况去掉
然后用数组的方法reduce
评论