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 相关文章推荐
this[] 指的是什么内容 讨论
Mar 24 Javascript
jquery 触发a链接点击事件解决方案
May 02 Javascript
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
Mar 28 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
JS中数组重排序方法
Nov 11 Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 Javascript
Vue实例中生命周期created和mounted的区别详解
Aug 25 Javascript
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
Javascript中Microtask和Macrotask鲜为人知的知识点
Apr 02 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
239军机修复记
2021/03/02 无线电
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php连接mysql数据库代码
2009/03/10 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
javascript制作照片墙及制作过程中出现的问题
2016/04/04 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
简单谈谈python中的Queue与多进程
2016/08/25 Python
浅谈对yield的初步理解
2017/05/29 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
2020/06/08 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
高中考试作弊检讨书
2014/01/14 职场文书
调查研究项目计划书
2014/04/29 职场文书
学生党员公开承诺书
2014/05/28 职场文书
支部书记四风问题对照检查材料
2014/10/04 职场文书
门球健将观后感
2015/06/16 职场文书
python Polars库的使用简介
2021/04/21 Python