码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript如何实现AOP

时间:2016-09-06 15:21:39      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

简介:

  AOP(面向切面的编程)是为了解决功能的独立性与可维护性而提供的一种编程思想。当多个函数大量重复使用同一个功能时通过分层切分,将功能平衡的划分,从而提高低耦合性。

JS中实现:

index.html

<script type="text/javascript" src="index.js"></script>

index.js

//实现调用前拦截
Function.prototype.before=function(func){ var _this=this; return function(){ if(func.apply(this,arguments)===false){//调用前执行AOP函数 return false; } return _this.apply(this,arguments);//执行原始函数 } }

//实现调用后拦截
Function.prototype.after=function(func){
    var _this=this;
    return function(){
        var result=_this.apply(this,arguments);//执行原始函数
        if(result===false){
            return false;
        }
        func.apply(this,arguments);//调用后执行AOP函数
        return result;
    }
}

//通过AOP实现外部功能
var Hello=function(func){ return func=(function(){ return func.before(function(){ console.log("before"); }).after(function(){ console.log("after"); }); })(); }
//主功能函数
function test(){ console.log("test function in Hello function");//打开调试器 }
//替换主函数 test
=Hello(test);

//运行 test();

 

Javascript如何实现AOP

标签:

原文地址:http://www.cnblogs.com/BruceWan/p/5845756.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!