高阶函数

高阶函数

一个函数的参数是一个函数(回调)
一个函数返回一个函数(拆分函数)
 //箭头函数中没有this指向会向上级作用域查找
 //没有arguments
 Function.protptype.before = function(beforeFn){
	return (...args)=>{
	beforeFn();
	this(...args);
}
}
//AOP 切片 装饰  把核心抽离出来 在核心的基础啊上增加功能
const say = (...args)=>{
	console.log('说话',args)
}
const newSay  = say.before(()=>{
	console.log('nihao')
})
newSay(1,2,3)
//输出 
nihao
说话  [1,2,3]

事务

开始的的时候做某件事 结束的时候做某件事

const perform = (anymethod,wrappers)=> {
	wrappers.foeEach(wrap=>{
	wrap.initilizae();
	})
	anymethod();
	wrappers.forEach(wrap=>{
	wrap.close()
	})
}
perform(()=>{
	console.log('说话')
},[
	{
		initilizae(){
			console.log('您好')
		},
		close(){
			console.log('再见')
		},
	}
	{
		initilizae(){
		 	console.log('您好')
		},
		close(){
			console.log('再见')
		}
	}
])

柯里化

把一个函数拆分成多个函数

const checkType = (content,type)=>{
	return Object.protoType.toString.call(content) === `object ${type}`

}
checkType(123,'Number')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值