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获取图片的原始尺寸以宽度为例
May 04 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
js处理层级数据结构的方法小结
Jan 17 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
Aug 15 Javascript
详解js静态检查工具eslint配置文件
Nov 23 Javascript
Vue数据双向绑定的深入探究
Nov 27 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
javascript代码实现简易计算器
Jan 25 Javascript
vite+vue3.0+ts+element-plus快速搭建项目的实现
Jun 24 Vue.js
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中source #N问题的解决方法
2014/01/27 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
javascript ie6兼容position:fixed实现思路
2013/04/01 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
JS实现打字游戏
2019/12/17 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
经济职业学院毕业生自荐书
2014/03/17 职场文书
毕业生求职自荐书范文
2014/03/27 职场文书
《假如》教学反思
2014/04/17 职场文书
爱情保证书大全
2014/04/29 职场文书
论文答谢词
2015/01/20 职场文书
证婚人致辞精选
2015/07/28 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
python数据处理之Pandas类型转换
2022/04/28 Python
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL
利用Python实时获取steam特惠游戏数据
2022/06/25 Python
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js