// 通过扩展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();
// 最后