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 强制类型转换函数
May 17 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
Vue.js开发环境快速搭建教程
Mar 17 Javascript
vue2.0 下拉框默认标题设置方法
Aug 22 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 Javascript
javascript前端实现多视频上传
Dec 13 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
JavaScript异步操作中串行和并行
Nov 20 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实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
理解python正则表达式
2016/01/15 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
python实现排序算法解析
2018/09/08 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
2019/12/10 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
什么是数组名
2012/05/10 面试题
经典C++面试题一
2016/11/06 面试题
施工材料员岗位职责
2014/02/12 职场文书
《观舞记》教学反思
2014/04/16 职场文书
学生自我评语大全
2014/04/18 职场文书
厂区绿化方案
2014/05/08 职场文书
主题团日活动总结
2014/06/25 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers