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 相关文章推荐
Jquery 基础学习笔记之文档处理
May 29 Javascript
网页中的图片的处理方法与代码
Nov 26 Javascript
jQuery UI-Draggable 参数集合
Jan 10 Javascript
jQuery实现简单二级下拉菜单
Apr 12 Javascript
跟我学习javascript的for循环和for...in循环
Nov 18 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 Javascript
简单的Vue异步组件实例Demo
Dec 27 Javascript
垃圾回收器的相关知识点总结
May 13 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
JS前后端实现身份证号验证代码解析
Jul 23 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/07/10 PHP
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
使用python 获取进程pid号的方法
2014/03/10 Python
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
python的help函数如何使用
2020/06/11 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
phpquery中文手册
2021/03/18 PHP
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
门卫班长岗位职责
2013/12/15 职场文书
食品采购员岗位职责
2014/04/14 职场文书
租车协议书范本
2014/04/22 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL