函数式编程
- 调用灵活,使用方便
- 代码简洁**
const once = function (fn){
let done = false
return function(){
if(!done){
fn.apply(this, arguments)
}
}
}
纯函数式编程好处
- 只运算,不记录状态
let arr = [1, 3, 3, 4, 5]
arr.slice(0, 3)
arr.slice(0, 3)
arr.slice(0, 3)
arr.splice(0, 2)
arr.splice(0, 2)
arr.splice(0, 2)
闭包
- 延长作用域链
- 扩大内部函数的作用域范围
- 因为闭包调用,导致调用栈结束时,外部函数被回收,但是被内部调用的变量没有回收
const saveVar = function(){
let min = 18
return function(age){
return age > min
}
}
柯里化
- 多元函数使用一元方式调用
- 传递部分参数,返回一个可以传递剩余参数的函数
const curry = function(fn){
return function CurriedFn(...args){
console.log('fn.length', fn.length)
if(fn.length > args.length){
return function(){
console.log(...args)
return CurriedFn(...args.concat(Array.from(arguments)))
}
}
return fn(...args)
}
}
主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro, healer-readable, mk-cute, jzman, geek-black, awesome-green, qklhk-chocolate
theme: juejin
highlight: