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 相关文章推荐
js的闭包的一个示例说明
Nov 18 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
Sep 01 Javascript
js中的异常处理try...catch使用介绍
Sep 21 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
Oct 24 Javascript
关闭时刷新父窗口两种方法
May 07 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
JS和JQ的event对象区别分析
Nov 24 Javascript
JS数组的常见用法实例
Feb 10 Javascript
实例详解jQuery的无new构建
Aug 02 Javascript
JavaScript仿网易选项卡制作代码
Oct 06 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 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
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
让html页面不缓存js的实现方法
2014/10/31 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
javascript基于定时器实现进度条功能实例
2017/10/13 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
详解关于Vue单元测试的几个坑
2020/04/26 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
高效使用Python字典的清单
2018/04/04 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
金讯Java笔试题目
2013/06/18 面试题
回门宴答谢词
2014/01/13 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
党员个人年度总结
2015/02/14 职场文书
2015年市场部工作总结
2015/04/30 职场文书
如何写新闻稿
2015/07/18 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python
python套接字socket通信
2022/04/01 Python
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers