問(wèn):什么是高階函數(shù)棠涮?
答:1、一個(gè)函數(shù)的參數(shù)是函數(shù)悦屏,就是高階函數(shù)(回調(diào)函數(shù)是高階函數(shù))
2节沦、一個(gè)函數(shù)返回一個(gè)函數(shù),當(dāng)前的這個(gè)函數(shù)就是高階函數(shù)础爬。
// 寫了一個(gè)業(yè)務(wù)代碼甫贯,擴(kuò)展當(dāng)前的業(yè)務(wù)代碼
function say(a,b){
console.log(a,b,'----say');
}
// 給某個(gè)方法添加一個(gè)方法,在他之前執(zhí)行
Function.prototype.before = function (callback){
return (...args)=>{ // 剩余運(yùn)算符看蚜,箭頭函數(shù)沒(méi)有this叫搁,沒(méi)有arguments。
callback();
this(...args);// 展開運(yùn)算符 當(dāng)前的this是say方法
}
}
let sayBefore = say.before(()=>{
console.log('-----beforeSay')
});
sayBefore('hello','world');
// 運(yùn)行結(jié)果
------beforeSay
hello world -----say