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 相关文章推荐
LazyLoad 延迟加载(按需加载)
May 31 Javascript
JS代码放在head和body中的区别分析
Dec 01 Javascript
使用jquery实现仿百度自动补全特效
Jul 23 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
Apr 17 jQuery
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
微信小程序实现文字无限轮播效果
Dec 28 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
JS实现移动端在线签协议功能
Aug 22 Javascript
react组件基本用法示例小结
Apr 27 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实现的操作excel类详解
2016/01/15 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
tensorflow自定义激活函数实例
2020/02/04 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
2019年国庆祝福语(70句)
2019/09/19 职场文书