1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

javascript中实现AOP

AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日志统计、安全控制、异常处理等。把这些功能抽离出来之后,再通过“动态织入”的方式掺入业务逻辑模块中。这样做的好处首先是可以保持业务逻辑模块的纯净和高内聚性,其次是可以很方便地复用日志统计等功能模块

  通常,在javascript中实现AOP,都是指把一个函数“动态织入”到另外一个函数之中。下面通过扩展Function.prototype来实现

Function.prototype.before = function (beforefn) {      var _this = this;    // 保存原函数的引用      return function () {    // 返回包含了原函数和新函数的"代理"函数         beforefn.apply(this, arguments);    // 先执行新函数,修正this         return _this.apply(this, arguments);    // 再执行原函数      }    };    Function.prototype.after = function (afterfn) {      var _this = this;      return function () {        var ret = _this.apply(this, arguments); //先执行原函数        afterfn.apply(this, arguments); //再执行新函数        return ret;      }    };      var func = function () {      console.log(2);    };      func = func.before(function () {      console.log(1);    }).after(function () {      console.log(3);    });      func();

  把负责打印数字1和打印数字3的两个函数通过AOP的方式动态植入func函数。通过执行上面的代码,控制台顺利地返回了执行结果1、2、3

//1

//2

//3

原文链接:https://www.qiquanji.com/post/8033.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

微信扫码关注

更新实时通知

作者:xialibing 分类:网页教程 浏览: