在说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("周杰伦");