高阶函数的概念

// 高阶函数的概念  1.一个函数参数是一个函数, 我们可以将这个函数认作是高阶函数
//                2. 一个函数返回一个函数  也可以称之为高阶函数
//                这两点满足任何一个都是高阶函数
function say(who) { // 普通的函数
  console.log("say", who);
}
// 对原函数进行扩展 但是不破坏原函数
// @装饰器对类来扩展
Function.prototype.before = function (beforeSay) {
  // 接受到了回调方法
  return (...args) => {
    // newSay
    beforeSay(...args);
    this(...args);
  };
};
let beforeSay = (args) => {
  // 传入一个回调方法
  console.log("say before", args);
};
 let newSay = say.before(beforeSay);
newSay("我"); // 这里调用的应该是新的方法


// 1) 原型的使用 给某个类型添加原型 可以在所有的公共方法上进行扩展
// 2)箭头函数 可以保证this不被篡改,找到的是上一级的this
// 3) ...args 放到参数里面 可以把所有参数组合成数组  放到执行中可以将数组展开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值