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对象的比较
Feb 26 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
Jun 25 Javascript
JavaScript 基本概念
Jan 20 Javascript
JavaScript中的标签语句用法分析
Feb 10 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
Nov 16 Javascript
jquery中用jsonp实现搜索框功能
Oct 18 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
ES6教程之for循环和Map,Set用法分析
Apr 10 Javascript
JavaScript中数组常见操作技巧
Sep 01 Javascript
Angular ng-animate和ng-cookies用法详解
Apr 18 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
JavaScript This指向问题详解
Nov 25 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中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
2017/02/08 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
JS求平均值的小例子
2013/11/29 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
javascript简易画板开发
2020/04/12 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
VUE解决 v-html不能触发点击事件的问题
2019/10/28 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python学习之用pygal画世界地图实例
2017/12/07 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
django最快程序开发流程详解
2019/07/19 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python修改FTP服务器上的文件名
2019/09/11 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
车辆维修工自我评价怎么写
2013/09/20 职场文书
会计主管岗位职责
2014/01/03 职场文书
小学运动会入场式解说词
2014/02/18 职场文书
促销活动方案模板
2014/02/24 职场文书
2014年维修工作总结
2014/11/22 职场文书
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL