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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
jquery 提交值不为空的元素示例代码
May 10 Javascript
使用iframe window的scroll方法控制iframe页面滚动
Mar 05 Javascript
AngularJS入门教程之Hello World!
Dec 06 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
Vue.js实现的购物车功能详解
Jan 27 Javascript
微信小程序封装的HTTP请求示例【附升级版】
May 11 Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 Javascript
解决vue-router 嵌套路由没反应的问题
Sep 22 Javascript
关于Vue中$refs的探索浅析
Nov 05 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
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
php检测文本的编码
2015/07/26 PHP
php限制文件下载速度的代码
2015/10/20 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
js实现文字滚动效果
2016/03/03 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
详解datagrid使用方法(重要)
2020/11/06 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
wxpython 学习笔记 第一天
2009/03/16 Python
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
python中return如何写
2020/06/18 Python
中专毕业生自荐信范文
2013/11/28 职场文书
学校文明单位申报材料
2014/05/06 职场文书
计算机网络专业求职信
2014/06/05 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
烈士陵园观后感
2015/06/08 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python