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 相关文章推荐
js获取日期:昨天今天和明天、后天
Jun 11 Javascript
javascript 面向对象封装与继承
Nov 27 Javascript
基于jQuery仿淘宝产品图片放大镜特效
Oct 19 Javascript
浅谈JS运算符&&和|| 及其优先级
Aug 10 Javascript
微信小程序实现带刻度尺滑块功能
Mar 29 Javascript
ES6中Iterator与for..of..遍历用法分析
Mar 31 Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
微信小程序实现留言板功能
Nov 02 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
使用layer.msg 时间设置不起作用的解决方法
Sep 12 Javascript
JQuery中的常用事件、对象属性与使用方法分析
Dec 23 jQuery
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/11/07 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
js中document.write的那点事
2014/12/12 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
餐饮业创业计划书范文
2014/01/06 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
安全生产奖惩制度
2015/08/06 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js
Python 中面向接口编程
2022/05/20 Python