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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
window.showModalDialog()返回值的学习心得总结
Jan 07 Javascript
教你用javascript实现随机标签云效果_附代码
Mar 16 Javascript
Node.js的Web模板引擎ejs的入门使用教程
Jun 06 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
详解webpack提取第三方库的正确姿势
Dec 22 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
Dec 29 Javascript
页面点击小红心js实现代码
May 26 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 Javascript
vue 动态添加class,三个以上的条件做判断方式
Nov 02 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面向对象的方法重载两种版本比较
2008/09/08 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
记录一次websocket封装的过程
2020/11/23 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python中标准模块importlib详解
2017/04/16 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
商铺租赁意向书
2014/04/01 职场文书
财产保全担保书范文
2014/04/01 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
政风行风整改方案
2014/10/25 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书