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 相关文章推荐
菜鸟javascript基础整理1
Dec 06 Javascript
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
jquery 3D 标签云示例代码
Jun 12 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
js检测判断日期大于多少天的方法
May 04 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
移动适配的几种方案(三种方案)
Nov 25 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
超详细小程序定位地图模块全系列开发教学
Nov 24 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
fgetcvs在linux的问题
2012/01/15 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
javascript插入样式实现代码
2012/02/22 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
extjs3 combobox取value和text案例详解
2013/02/06 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
jquery tmpl模板(实例讲解)
2017/09/02 jQuery
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
使用python编写监听端
2018/04/12 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
详解python的argpare和click模块小结
2019/03/31 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
质量负责人岗位职责
2015/02/15 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书