AOP面向切面编程

 

Aspect Oriented Programming 面向切面编程

目的:针对业务处理过程中的切面进行提取,面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果
 
特点:  无侵入!
 
常用:  埋点
 
实战: 
 
 1 // 比如计算所有函数谁最耗时,注意无侵入
 2 
 3 function test() {
 4     alert(2)
 5     return 'me'
 6 }
 7 
 8 Function.prototype.before = function(fn) {
 9     var _self = this;
10     return function() {
11         // this改变了   因为闭包的匿名报数 所以this执行window
12         fn.apply(_self, arguments);
13         return _self.apply(_self, arguments);
14     }
15 }
16 Function.prototype.after = function(fn) {
17     // after 先执行本身this 再执行回调
18     var _self = this;
19     return function() {
20         var result = _self.apply(_self, arguments);
21         fn.apply(_self, arguments);
22         return result
23     }
24 }
25 
26 // 形成链式 因为第一个返回的是function  而after是挂载在Function的原型上的
27 test.before(function() {
28     alert(1)
29 }).after(function() {
30     alert(3)
31 })()

 

 
具体的耗时计算,看官自己补上吧。这里主要讲思想了
 
 
 
posted @ 2015-06-30 16:01  GalenYip  阅读(634)  评论(2编辑  收藏  举报