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 相关文章推荐
javascript 表格排序和表头浮动效果(扩展SortTable)
Apr 07 Javascript
jquery 上下滚动广告
Jun 17 Javascript
JavaScript中Object和Function的关系小结
Sep 26 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
vue使用iframe嵌入网页的示例代码
Jun 09 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
微信小程序日历插件代码实例
Dec 04 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 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
PHP如何编写易读的代码
2007/07/10 PHP
基于PHP文件操作的详细诠释
2013/06/21 PHP
关于php循环跳出的问题
2013/07/01 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
微信红包随机生成算法php版
2016/07/21 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
PHP chop()函数讲解
2019/02/11 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
Python实现把xml或xsl转换为html格式
2015/04/08 Python
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
django中间键重定向实例方法
2019/11/10 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
python使用配置文件过程详解
2019/12/28 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
代理协议书范本
2014/04/22 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
入学证明
2015/06/23 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python