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 相关文章推荐
js获取提交的字符串的字节数
Feb 09 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
Oct 26 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
Oct 14 Javascript
查询json的数据结构的8种方式简介
Mar 10 Javascript
当达到输入长度时表单自动切换焦点
Apr 06 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
jQuery中的select操作详解
Nov 29 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
在Vue中使用highCharts绘制3d饼图的方法
Feb 08 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
Feb 22 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
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
东方红 - 来复式再生机的修复
2021/03/02 无线电
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
2014/08/10 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
详谈javascript异步编程
2016/02/21 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
JQuery判断正整数整理小结
2017/08/21 jQuery
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
小程序实现横向滑动日历效果
2019/10/21 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
安全资料员岗位职责
2013/12/14 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
民主评议党员总结
2014/10/20 职场文书
学校党支部承诺书
2015/04/30 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
JavaScript文档对象模型DOM
2021/11/20 Javascript