JS面向切面编程(AOP)

  主要就是两个函数,在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攻击
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,861评论 1 45
  • When I see a bird that walks like a duck and swims like a...
    JunChow520阅读 1,805评论 0 0
  • $HTML, HTTP,web综合问题 1、前端需要注意哪些SEO 2、 的title和alt有什么区别 3、HT...
    Hebborn_hb阅读 4,787评论 0 20
  • 碧水清波摇岸柳。云影轻轻,曲径连幽薮。 谁把颂埙哀字奏。繁花落尽啼归瘦。 独立青林风满袖。别恨离愁,无奈年年有。 ...
    疏影横笛a阅读 691评论 6 11
  • 我们在山谷里看着稗草升起和杏树和松林和灰尘杏子不会再成熟石头在古老的年代里就已经长成,回响在我们黄色的土壤之下针铺...
    昵称_不存在的阅读 126评论 0 3

友情链接更多精彩内容