高阶函数
1,回调函数是高阶函数的一种。
高阶函数
1) 如果函数的参数是一个函数
2)如果一个函数返回了一个函数 (返回函数就是高阶函数)
<script>
//AOP 面向切片编程 , 或者重新原生方法
function say (who){
//todo ....
console.log(who+'说话')
}
Function.prototype.before = function (beforeFunc){
// ... 剩余运算符 ,将所以的参数组合为数组,只能在最后的一个参数中用
return (...agrs)=>{ //箭头函数没有this,没有arguments 没有原型
console.log(agrs);
beforeFunc()
this(...agrs)// ... 展开运算符
}
}
let newFn = say.before(function(){
console.log('说话前')
})
newFn('我')
</script>
<script>
let oldPush = Array.prototype.push;
function push (...args){
console.log('数据更新了2');
oldPush.call(this,...args) //call的用法 1)改变this指向, 2)让函数自动执行
}
let arr = [1,2,3,4]
push.call(arr,5,6,7) //在调用push方法时触发一句更新操作
console.log(arr);
</script>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。