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 相关文章推荐
js模拟类继承小例子
Jul 17 Javascript
JavaScript 原型学习总结
Oct 29 Javascript
基于jQuery的简单九宫格实现代码
Aug 09 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
jquery判断当前浏览器的实现代码
Nov 07 Javascript
详解webpack 多入口配置
Jun 16 Javascript
vue-cli如何添加less 以及sass
Jul 06 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 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生成月历代码
2007/06/14 PHP
php生成随机密码的三种方法小结
2010/09/04 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
JavaScript使用链式方法封装jQuery中CSS()方法示例
2017/04/07 jQuery
Vue实现选择城市功能
2017/05/27 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
vue循环数组改变点击文字的颜色
2019/10/14 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
JS实现打字游戏
2019/12/17 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
node.js如何根据URL返回指定的图片详解
2020/10/21 Javascript
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python命令行click参数用法解析
2019/12/19 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
幼儿园家长评语
2014/02/10 职场文书
婚礼秀策划方案
2014/05/19 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
荆州古城导游词
2015/02/06 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
Jedis操作Redis实现模拟验证码发送功能
2021/09/25 Redis