高阶函数之AOP 面向切片编程

389 阅读1分钟

在说AOP之前,我们需要先说下什么是高级函数,满足高阶函数的条件:

  • 把一个函数当成一个参数传递给另一个参数
  • 一个函数执行返回另一个函数 这些都是高阶函数。

什么是AOP面向切片编程呢,就是不修改原来的基础功能,而是在这个基础之上添加新的功能,相当于多了一个中间层,这个就是切片函数

/* 
  什么是高阶函数
  把一个函数当成形参传递给另一个函数
  一个函数返回了另一个函数
  切片函数:AOP 面向切片编程
*/

//===> 形成的条件

// function fn(callback){
//       callback();
// }

// fn(function(){console.log(1)});


// function B(x){
//     return function(y){
//          return x+y;
//     }
// }

//====> 让所有的函数实例都能用before这个方法
Function.prototype.before=function(callback){
   // this 当前的实例 
   var _that=this;
   return function(val){
       // this  window
         console.log(val);
         _that();

   }
}

function say(){
    console.log("say hello");
}

var  newFn=say.before(function(){
     console.log("您好!")
})

newFn("周杰伦");