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 初体验(建议学习jquery)
Apr 25 Javascript
angularJS 入门基础
Feb 09 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
springMVC结合AjaxForm上传文件
Jul 12 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
Vue概念及常见命令介绍(1)
Dec 08 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
JavaScript函数基础详解
Feb 03 Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 Javascript
微信公众平台 发送模板消息(Java接口开发)
Apr 17 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
js中单引号与双引号冲突问题解决方法
2013/10/04 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
2016/07/28 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
vuejs如何配置less
2017/04/25 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python open()文件处理使用介绍
2014/11/30 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
值得收藏的10道python 面试题
2019/04/15 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
CSS3实战第一波 让我们尽情的圆角吧
2010/08/27 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
小学毕业典礼演讲稿
2014/09/09 职场文书
辞职离别感言
2015/08/04 职场文书
会计主管竞聘书
2015/09/15 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL