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 相关文章推荐
JQuery select控件的相关操作实现代码
Sep 14 Javascript
js绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
javascript实现促销倒计时+fixed固定在底部
Sep 18 Javascript
jQuery判断元素是否存在的可靠方法
May 06 Javascript
完美解决jQuery的hover事件在IE中不停闪动的问题
Feb 10 Javascript
JavaScript实现前端分页控件
Apr 19 Javascript
Angularjs上传图片实例详解
Aug 06 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
Jan 30 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
Sep 06 jQuery
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
微信小程序实现点击导航条切换页面
Nov 19 Javascript
Web应用开发TypeScript使用详解
May 25 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与SQL注入攻击[三]
2007/04/17 PHP
php5新改动之短标记启用方法
2008/09/11 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
php微信公众平台示例代码分析(二)
2016/12/06 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
启用OPCache提高PHP程序性能的方法
2019/03/21 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
JS getStyle获取最终样式函数代码
2010/04/01 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
vue 2.0封装model组件的方法
2017/08/03 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
python监控nginx端口和进程状态
2019/09/06 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
逃出克隆岛观后感
2015/06/09 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python
PHP 时间处理类Carbon
2022/05/20 PHP
Windows server 2016服务器基本设置
2022/08/14 Servers