初识AOP面向切面编程 (前端)

栏目: 编程工具 · 发布时间: 7年前

内容简介:我们都知道OOP的特点是继承、多态和封装。而封装就是把一个功能的代码封装到一个函数中(或一个类中),以后再想实现这个功能,只需要执行函数方法即可,不需要再重复的编写代码。但这样会有一个问题,假如说我封装了一个选项卡的功能,项目中多处都在使用此功能。突然有一天接到一个需求说希望选项卡切换的时候请求某个接口,这样的话,项目中的每个选项卡都要处理一次这个东西,写一堆代码,是不是就不好了?如果说我只想某几个页面选项卡切换的时候去请求某个接口,那你的业务代码又一堆。所以这个时候就需要切面处理,也就是AOP。换句大白话

我们都知道OOP的特点是继承、多态和封装。而封装就是把一个功能的代码封装到一个函数中(或一个类中),以后再想实现这个功能,只需要执行函数方法即可,不需要再重复的编写代码。但这样会有一个问题,假如说我封装了一个选项卡的功能,项目中多处都在使用此功能。突然有一天接到一个需求说希望选项卡切换的时候请求某个接口,这样的话,项目中的每个选项卡都要处理一次这个东西,写一堆代码,是不是就不好了?如果说我只想某几个页面选项卡切换的时候去请求某个接口,那你的业务代码又一堆。所以这个时候就需要切面处理,也就是AOP。

换句大白话,就是说你在家切西瓜,刚切了一刀,突然家里来客人了。。。你就想在西瓜上裱个花,于是就做了一个裱花的函数,但西瓜下面的那些地方,该怎么样还是怎么样。换到代码层面,就是不影响原有的业务逻辑,而又在原有的业务逻辑上做 了一些别的事情。

示例

Function.prototype.before = function(callback) {
  let self = this
  return function() { 
    callback()
    self.apply(self, arguments)
  }
}

function fn(...val) {
  console.log('原有功能,' + val)
}

let newFn = fn.before(function() { // 原有功能之前执行
  console.log('在原有功能函数之前执行') 
})

newFn('准备', '执行')  // 为原有功能传参
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

加密与解密(第4版)

加密与解密(第4版)

段钢 / 电子工业出版社 / 2018-10-1 / 198

《加密与解密(第4版)》以加密与解密为切入点,讲述了软件安全领域的基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。这些知识彼此联系,读者在掌握这些内容之后,很容易就能在漏洞分析、安全编程、病毒分析、软件保护等领域进行扩展。从就业的角度来说,掌握加密与解密的相关技术,可以提高自身的竞争能力;从个人成长的角度来说,研究软件安全技术有助于掌握一些系统底层知识,是提升职业技能的重要......一起来看看 《加密与解密(第4版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具