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 对象模型 执行模型
Dec 06 Javascript
js下写一个事件队列操作函数
Jul 19 Javascript
JavaScript 代码压缩工具小结
Feb 27 Javascript
js防止表单重复提交实现代码
Sep 05 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
Nov 19 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
简单实现jQuery弹幕效果
May 06 jQuery
详解vue前后台数据交互vue-resource文档
Jul 19 Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 Javascript
javascript如何实现create方法
Nov 04 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数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
javascript获取所有同类checkbox选项(实例代码)
2013/11/07 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
python登录豆瓣并发帖的方法
2015/07/08 Python
Python多进程同步简单实现代码
2016/04/27 Python
Python实现注册登录系统
2017/08/08 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Unix如何添加新的用户
2014/08/20 面试题
servlet面试题
2012/08/20 面试题
优秀女职工事迹材料
2014/02/06 职场文书
委托公证书
2014/04/08 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
教师师德演讲稿
2014/05/06 职场文书
毕业大学生自荐信
2014/06/17 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
市场营销计划书
2015/01/17 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android