JavaScript 高级函数实现AOP
来源:互联网 发布:淘宝dsr影响多大 编辑:程序博客网 时间:2024/06/06 03:38
AOP (面向切面编程) 的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能模块通常包括日志统计,安全控制,异常处理等。把这些功能抽离出来后,在通过 “动态植入” 的方式掺入业务逻辑模块中。这样做的好处首先是可以保持业务逻辑模块的纯净和高内聚性,其次是方便地复用日志统计等功能模块。
通常在 JavaScript 中实现 AOP,都是把指把一个函数 “动态植入” 到另一个函数中,具体实现的方法很多,我们通过扩展 Function.prototype 来做到这一点。
//在需要执行的函数之前执行某个新添加的功能函数
Function.prototype.before = function( beforefn){
var _self = this; //保存原函数引用
//返回包含了原函数和新函数的代理函数
return function(){
beforefn.apply( this , arguments ); //执行新函数,且保证this不被劫持,新函数接受的参数
return _self.apply(_self,arguments); // 也会被原封不动的传入旧函数,新函数在旧函数之前执行
}
}
//在需要执行的函数之后执行某个新添加的功能函数
Function.prototype.after = function( afterfn ){
var _self = this;
return function(){
var ret = _self.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(); //输出 123;
这种使用AOP的方式来给函数添加职责,也是JavaScript语言中一种非常特别和巧妙的装饰者模式实现
- JavaScript 高级函数实现AOP
- javascript--aop实现
- javascript AOP的实现javascript
- 《JavaScript高级程序设计》函数
- Javascript 高级函数
- 【JavaScript】 高级函数
- JavaScript高级函数-----惰性函数
- AOP在JavaScript中的实现
- javascript高级编程--匿名函数
- javascript函数入门到高级
- javascript函数的高级写法
- javascript 高级程序设计读书笔记 函数
- JavaScript 4.2 函数高级-this
- JavaScript高级程序设计笔记------函数
- javascript函数function学习【javascript高级程序设计】
- JavaScript 4.1 函数高级-理解函数
- JavaScript 基于对象事件的 AOP 实现
- javascript使用闭包实现AOP
- 125. Valid Palindrome
- Ajax初步认识:
- 用JMX远程监控Tomcat
- 鼠标移入事件 动态元素 事件委托 鼠标移入移出 弹出对话框事件
- java 读取项目properties文件
- JavaScript 高级函数实现AOP
- Javascript中的Duck Typing
- NYOJ 914-Yougth的最大化(二分)
- 解决错误指定RequestHeader导致后台接受不到FormData数据的问题
- unity3d-2017.1.0f3版更新内容(一)
- 猜数字小游戏(范围1~100之间)
- 【Nova】nova-compute代码学习1-启动时准备工作
- UVa 11292 Dragon of Loowater(排序+贪心)
- 图像处理算法—区域生长