AOP 動態添加函數
阿新 • • 發佈:2019-03-09
after for aop cti eve 技術 .proto turn function
Function.prototype.before = function(beforefn) { // 保存原函數的引用 var self = this; // 返回包含了原函數和新函數的代理函數 return function() { // 執行新函數,修正this beforefn.apply(this, arguments); // 執行原函數 return self.apply(this, arguments); }; }; Function.prototype.afterView Code= function (afterfn) { var self = this; return function () { // 先調用 調用的函數,在調用afterfn // 調用這個函數的也是一個函數 var ret = self.apply(this, arguments); afterfn.apply(this, arguments); return ret; }; }; var func = function () { console.log(2); };// 每次使用之前都要這麽寫一遍 function init(fn) { fn = fn.before(function () { console.log(1); }) .after(function () { console.log(3); }); return fn; } func = init(func); func();
AOP 動態添加函數