美文网首页
JS面向切面编程(AOP)

JS面向切面编程(AOP)

作者: 勤奋的大鱼 | 来源:发表于2019-02-27 15:33 被阅读0次

  主要就是两个函数,在Function的原型上加上before与after,作用就是字面的意思,在函数的前面或后面执行,相当于无侵入把一个函数插入到另一个函数的前面或后面,应用得当可以很好的实现代码的解耦,js中的代码实现如下:

   Function.prototype.before = function (fn) {
     let that = this;
     return function (...params) {
       fn.apply(this, params)
       return that.apply(this, params)
     }
   }
   Function.prototype.after = function (fn) {
     let that = this;
     return function (...params) {
       let result = that.apply(this, params)
       if (result === false) {
         return
       }
       fn.apply(this, params)
       return result
     }
   }

应用的一些例子:

  1. 为window.onload添加方法,防止window.onload被二次覆盖
  2. 无侵入统计某个函数的执行时间
  3. 表单校验
  4. 统计埋点
  5. 防止csrf攻击

相关文章

网友评论

      本文标题:JS面向切面编程(AOP)

      本文链接:https://www.haomeiwen.com/subject/pwqtmftx.html