Javascript如何实现AOP

Posted 代码改造世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript如何实现AOP相关的知识,希望对你有一定的参考价值。

简介:

  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的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 JavaScript 代码片段翻译成 Parenscript?

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

JavaScript - 代码片段,Snippets,Gist

几个有用的JavaScript/jQuery代码片段(转)

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象