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 void(0)的妙用
Oct 21 Javascript
使用PHP+JQuery+Ajax分页的实现
Apr 23 Javascript
js 遍历json返回的map内容示例代码
Oct 29 Javascript
常规表格多表头查询示例
Feb 21 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
Nov 22 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
Dec 05 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
微信小程序实现天气预报功能(附源码)
Dec 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
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
AngularJS入门教程之数据绑定原理详解
2016/11/02 Javascript
JS实现“隐藏与显示”功能(多种方法)
2016/11/24 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python 实现批量图片识别并翻译
2020/11/02 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
开工典礼策划方案
2014/05/23 职场文书
思想作风建设心得体会
2014/10/22 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
何玥事迹观后感
2015/06/16 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
MySQL主从切换的超详细步骤
2022/06/28 MySQL
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers