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 Boolean、Nnumber、String 强制类型转换的区别详细介绍
Dec 13 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 Javascript
JS+DIV实现鼠标划过切换层效果的方法
May 25 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
利用transition实现文字上下抖动的效果
Jan 21 Javascript
Vue-router 类似Vuex实现组件化开发的示例
Sep 15 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
Sep 05 Javascript
vue中的计算属性和侦听属性
Nov 06 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基于curl模拟post提交json数据示例
2018/06/22 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
javascript Keycode对照表
2009/10/24 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
Angular 2父子组件数据传递之局部变量获取子组件其他成员
2017/07/04 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
html5 拖拽及用 js 实现拖拽功能的示例代码
2020/10/23 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
服装采购员岗位职责
2014/03/15 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
创文明城市标语
2014/06/16 职场文书
社区文艺活动方案
2014/08/19 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
MySQL Router的安装部署
2021/04/24 MySQL
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
JS实现数组去重的11种方法总结
2022/04/04 Javascript
HttpClient实现表单提交上传文件
2022/08/14 Java/Android