当前位置: 首页 > 工具软件 > jQuery AOP > 使用案例 >

Javascript AOP

微生嘉祥
2023-12-01

这是8月参加的一次深圳前端技术分享会,有个小伙伴分享了一个关于AOP的demo,回来又查了一些关于AOP的资料

demo

  function main() {//主函数
        console.log('this is main');
    }
    function logBefore(arg_log) {
        console.log('this is logBefore');
    }
    function logAfter(arg_log) {
        console.log('this is logAfter');
    }

    Function.prototype.before = function (func) {
        var vm = this;//指向在before之前调用的对象
        console.log("before",vm);
        return function () {//前置
            func.apply(this);//先  /*apply(obj,args);用obj代替当前对象*/
            vm.apply(this);//后
        }
    };

    Function.prototype.after = function (func) {
        var vm = this;//指向在after之前调用的对象
        console.log("after",vm);
        return function () {//后置
            vm.apply(this);//先
            func.apply(this);//后
        }
    };
    testAOP = main.before(logBefore).after(logAfter);
    testAOP();


Aspect Oriented Programming
将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

在网上搜了一下,和AOP相关度比较高的是Spring,那么在web前端有AOP的用武之地吗?

比如说,在angular的项目中,我在每个控制器执行之前,都需要校验一把用户是否有执行权限 或者 token是否过期,如果没有权限或token已过期,就需要显示对应的提示或跳转到登录页面;目前的做法是在所有控制器上加一层父控制器,在父控制器里实现校验,那么,这里是不是就可以使用AOP来实现了呢?

 类似资料:

相关阅读

相关文章

相关问答