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 相关文章推荐
javascript动画浅析
Aug 30 Javascript
jquery设置元素的readonly和disabled的写法
Sep 22 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
JavaScript中的函数重载深入理解
Aug 04 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
Mar 29 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
Jul 03 Javascript
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
vue-router配合ElementUI实现导航的实例
Feb 11 Javascript
JS与SQL方式随机生成高强度密码示例
Dec 29 Javascript
javascript将16进制的字符串转换为10进制整数hex
Mar 05 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 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中数据的批量导入(csv文件)
2006/10/09 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
JavaScript中令你抓狂的魔术变量
2006/11/30 Javascript
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python基于matplotlib实现绘制三维图形功能示例
2018/01/18 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python中删除某个元素的方法解析
2019/11/05 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
应届生污水处理求职信
2013/11/06 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
品牌服务方案
2014/06/03 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
工伤私了协议书范本
2014/11/24 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书