javascript AOP 实现ajax回调函数使用比较方便


Posted in Javascript onNovember 20, 2010
function actsAsDecorator(object) { 
object.setupDecoratorFor = function(method) { 
if (! ('original_' + method in object) ) { 
object['original_' + method] = object[method]; 
object['before_' + method] = [ ]; 
object['after_' + method] = [ ]; 
object[method] = function() { 
var i; 
var b = this['before_' + method]; 
var a = this['after_' + method]; 
var rv; 
for (i = 0; i < b.length; i++) { 
b[i].call(this, arguments); 
} 
rv = this['original_' + method].apply(this, arguments); 
for (i = 0; i < a.length; i++) { 
a[i].call(this, arguments); 
} 
return rv; 
} 
} 
}; 
object.before = function(method, f) { 
object.setupDecoratorFor(method); 
object['before_' + method].unshift(f); 
}; 
object.after = function(method, f) { 
object.setupDecoratorFor(method); 
object['after_' + method].push(f); 
}; 
} 
/** 
Invoking 
*/ 
function Test(){ 
this.say1 = function(s){ 
alert(s); 
} 
this.say2 = function(s){ 
alert(s); 
} 
} 
var t = new Test(); 
actsAsDecorator(t); 
t.before("say1",beforeHander); 
t.after("say2",afterHander); 
test();
Javascript 相关文章推荐
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
Oct 06 Javascript
js和php如何获取当前url的内容
Sep 22 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
Apr 15 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
JS实现简单的tab切换选项卡效果
Sep 21 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
js实现动态显示时间效果
Mar 06 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
node.js基于socket.io快速实现一个实时通讯应用
Apr 23 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 #Javascript
javascript来定义类的规范小结
Nov 19 #Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 #Javascript
js 创建快捷方式的代码(fso)
Nov 19 #Javascript
javascript 函数参数限制说明
Nov 19 #Javascript
Javascript的并行运算实现代码
Nov 19 #Javascript
js里的prototype使用示例
Nov 19 #Javascript
You might like
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
微信小程序实现锚点功能
2019/11/20 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
Tensorflow卷积神经网络实例
2018/05/24 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
经典婚礼主持词
2014/03/13 职场文书
物理学专业自荐信
2014/06/11 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
党员组织生活会发言材料
2014/10/17 职场文书