面向切面编程(AOP)
AOP (Aspect Oriented Programming)主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
<!-- 统计当前所有函数的耗时最长 -->
function test() {
alert(2)
}
Function.prototype.before = function (fn) {
var _self = this;
return function () {
if(!fn.apply(this, arguments)) return 0;
return _self.apply(_self, arguments);
}
}
Function.prototype.after = function (fn) {
var _self = this;
return function () {
var result = _self.apply(_self, arguments);
if(!result) return 0;
fn.apply(this, arguments);
return result;
}
}
test.after(function () {
alert(3);
}).before(function () {
alert(1);
return false; // 控制是否继续执行
})();