//什么是高阶函数:
//1.如果一个函数的参数是一个函数(回调函数就是一种高阶函数)
//2.如果一个函数返回一个函数 当前这个函数也是一个高阶函数
function say(a, b) {
console.log('say', a, b)
}
//够某个方法 添加一个方法在他执行之前调用
Function.prototype.before = function(callback){
return (...args) => {
//...剩余运算符 ,箭头函数没有this 也没有arguments
callback();
this(...args);//展开运算符
}
}
let beforeSay = say.before(function(){
console.log('before say')
})
beforeSay('hello', 'world')
/*****
- ...的两个作用
- 1.如果在函数参数里,就是把所有参数组成一个数组
- 2.如果在函数调用的时候,相当于要把参数依次的传入到另一个函数中
*/