// 通过扩展Function.prototype实现的。
Function.prototype.before = function(beforeFn){
var _self = this;
return function(){
beforeFn.apply(this,arguments); // 先提前调用 before方法
return _self.apply(this,arguments); // 返回自身对象。
}
}
Function.prototype.after = function(afterFn){
var _self = this;
return function(){
var ret = _self.apply(this,arguments); // 先执行自身
afterFn.apply(this,arguments); // 执行后续方法
return ret; // 返回自身对象
}
}
var test = function(){
console.log('hello');
}
test = test.after(function(){
console.log('after');
})
test = test.before(function(){
console.log('before');
});
test();
// 最后