概念
(AOP)面向切面编程,主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程的某个步骤或者阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果.也就是说,在业务逻辑开始之前与结束之后进行操作,不干扰业务逻辑的具体过程.
举个例子:计算一个函数的执行时间。
普通方法:
function test() {
var start = new Date();
alert(2);
var end = new Date();
console.log(end - start);
};
但是这样的话是不是每个函数都要加上start,end,这样会很麻烦而且说不定别人也会有start变量,所以我们就需要用面向切面编程
function test(){
alert(2);
}
Function.prototype.before = function(fn){
var __self = this;
return function(){
fn.apply(__self,arguments);
return __self.apply(__self,arguments);
}
}
Function.prototype.after = function(fn){
var __self = this;
return function(){
__self.apply(__self,arguments);
fn.apply(this,arguments);
}
}
test.before(function(){
return start = new Date();
}).after(function(){
return end = new Date();
})();
console.log(end - start);
网友评论