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 相关文章推荐
建立良好体验度的Web注册系统ajax
Jul 09 Javascript
用JavaScript隐藏控件的方法
Sep 21 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
javascript数字时钟示例分享
Apr 23 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
JQuery限制复选框checkbox可选中个数的方法
Apr 20 Javascript
js实现无缝滚动特效
Dec 20 Javascript
JS前端加密算法示例
Dec 22 Javascript
jQuery中DOM节点删除之empty与remove
Jan 20 Javascript
JavaScript获取ul中li个数的方法
Feb 13 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
Vue 2.0的数据依赖实现原理代码简析
Jul 10 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模块memcached使用指南
2014/12/08 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
拥抱模块化的JavaScript
2012/03/07 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
VUE 实现element upload上传图片到阿里云
2020/08/12 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
python求pi的方法
2014/10/08 Python
Python探索之创建二叉树
2017/10/25 Python
Python subprocess库的使用详解
2018/10/26 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
旅游管理专业学生求职信
2013/09/28 职场文书
服务承诺口号
2014/05/22 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
计算机实训心得体会
2016/01/14 职场文书
小学新课改心得体会
2016/01/22 职场文书