我时候我们在执行一个函数前或者是执行某个函数后需要做一些事情,这时候,这些函数就有用了
主要用到函数的aplly调用
//在某个函数执行后执行的一个方法 Function.prototype.after=function(afterFn){ var _self=this; //保存当前函数的引用 return function(){ var ret=_self.apply(this,arguments); afterFn.apply(this,arguments); return ret;//返回原函数执行后的返回值 }; } //在函数执行前执行的一个方法 Function.prototype.before=function(beforeFn){ var _self=this; return function(){ //执行先行函数 beforeFn.apply(this,arguments); var ret=_self.apply(this,arguments); return ret;//返回原函数执行后的返回值 }; } // 测试方法: function sayHi(str){ alert("我是sayHi"); return "111"; } var res=sayHi.after(function(){alert("我是后面函数");})(); // 先弹出'我是sayHi', 后弹出 ‘我是后面函数’ var res=sayHi.before(function(){alert("我是先行方法");})() //// 先弹出'我是先行方法', 后弹出‘我是sayHi’ alert(res); // "111"