Javascript Function对象扩展之延时执行函数


Posted in Javascript onJuly 06, 2010

不就利用window对象的setTimeout方法吗?Bingo,一点没错!如果你在一个应用里面常常要“延时执行某某函数”,那末基于DRY的原则,可以针对Function全局对象进行扩展,为函数增加一个延时方法如delay,这样会让你的代码更简洁有效。
扩站Function对象增加delay方法如下:

Function.prototype.delay=function(this1,timeout){ 
this1=this1||null; 
timeout=timeout||0; 
var _this=this; 
var args=[]; 
//获取参数,注:第1、第2个参数是保留参数 
switch(arguments.length){ 
case 1: 
timeout=parseInt(arguments[0]); 
timeout=isNaN(timeout)?0:timeout; 
timeout=timeout<0?0:timeout; 
break; 
default: 
for(var i=0;i<arguments.length;i++){ 
if(i>1){args.push(arguments[i]);}; 
}; 
break; 
}; 
var proxy=function(){ 
_this.apply(this1,args); 
}; 
return window.setTimeout(proxy,timeout); 
};

在firefox的firebug插件的控制台下面测试下,代码如:
var xx=function(n){ 
this.name=n; 
}; 
xx.prototype.hi=function(a,b){ 
console.log(this.name+"-"+a+"-"+b); 
}; 
var xx1=new xx("levin"); 
var t=xx1.hi.delay(xx1,1000,"cocoa","yoyo"); 
xx1.hi("guluglu","jigujigu");
Javascript 相关文章推荐
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
Apr 16 Javascript
javascript 事件处理程序介绍
Jun 27 Javascript
js实现从数组里随机获取元素
Jan 12 Javascript
Javascript中replace()小结
Sep 30 Javascript
JavaScript知识点总结之如何提高性能
Jan 15 Javascript
浅谈JavaScript的内置对象和浏览器对象
Jun 03 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
Jul 26 Javascript
详解VUE里子组件如何获取父组件动态变化的值
Dec 26 Javascript
最简单的JS实现json转csv的方法
Jan 10 Javascript
JavaScript实现简单计算器功能
Dec 19 Javascript
mapboxgl实现带箭头轨迹线的代码
Jan 04 Javascript
JavaScript经典效果集锦
Jul 06 #Javascript
前端开发必须知道的JS之原型和继承
Jul 06 #Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 #Javascript
一个基于jquery的图片切换效果
Jul 06 #Javascript
jQuery ajax BUG:object doesn't support this property or method
Jul 06 #Javascript
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 #Javascript
JavaScript对象、属性、事件手册集合方便查询
Jul 04 #Javascript
You might like
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
如何利用AngularJS打造一款简单Web应用
2015/12/05 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
python itchat实现微信自动回复的示例代码
2017/08/14 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
django从后台返回html代码的实例
2020/03/11 Python
python/golang 删除链表中的元素
2020/09/14 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
在什么时候需要使用"常引用"
2015/12/31 面试题
自主招生自荐信
2013/12/08 职场文书
专升本个人自我评价
2013/12/22 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
宣传口号大全
2014/06/16 职场文书
反对邪教标语
2014/06/30 职场文书
2014年销售经理工作总结
2014/12/01 职场文书
幼儿园六一儿童节开幕词
2016/03/04 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript