JS实现self的resend


Posted in Javascript onJuly 22, 2010

ECMA V5定义了一个期待已久的方法:Object.getPrototypeOf,它可以无视型别信息得到某对象的原型([[prototype]]),基于此,我们可以构造出一个resend:(请用Chrome 5、IE9预览第三版测试)

obj.resend = function() { 
var pof = Object.getPrototypeOf; 
var has = function() {......} // hasOwnProperty的封装 
var make = function(obj, old) { 
return function(name, args) { 
var step = pof(obj), 
r; 
while (step && !has(step, name)) step = pof(step); 
if (!step) throw new Error('Unable to resend: method missing'); var foundMethod = step[name]; 
var backup = arguments.callee; 
this.resend = make(this, backup); 
r = foundMethod.apply(this, Array.prototype.slice.call(arguments, 1)); 
this.resend = old; 
return r 
} 
}; 
return function(name, args__) { 
var rv; 
var old = this.resend; 
this.resend = make(this, old); 
rv = this.resend.apply(this, arguments); 
this.resend = original; 
return rv; 
} 
}()
Javascript 相关文章推荐
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
jQuery调取jSon数据并展示的方法
Jan 29 Javascript
Javascript实现获取及设置光标位置的方法
Jul 21 Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 Javascript
bootstrap组件之按钮式下拉菜单小结
Jan 19 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
详解vue中this.$emit()的返回值是什么
Apr 07 Javascript
Vue + Elementui实现多标签页共存的方法
Jun 12 Javascript
JavaScript编程开发中的五个实用小技巧
Jul 22 #Javascript
关于javascript DOM事件模型的两件事
Jul 22 #Javascript
JavaScript 事件系统
Jul 22 #Javascript
(function($){...})(jQuery)的意思
Jul 22 #Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
Jul 20 #Javascript
一个简单的js动画效果代码
Jul 20 #Javascript
dess中一个简单的多路委托的实现
Jul 20 #Javascript
You might like
phplot生成图片类用法详解
2015/01/06 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
高中毕业的自我鉴定
2013/12/09 职场文书
yy生日主持词
2014/03/20 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
先进个人评语大全
2015/01/04 职场文书
万里长城导游词
2015/01/30 职场文书
仙境之桥观后感
2015/06/16 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书