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 相关文章推荐
轻轻松松学JS调试(不下载任何工具)
Apr 14 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
自己封装的常用javascript函数分享
Jan 07 Javascript
详解JavaScript中的异常处理方法
Jun 16 Javascript
js中作用域的实例解析
Mar 16 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
ES7中利用Await减少回调嵌套的方法详解
Nov 01 Javascript
vue组件实现弹出框点击显示隐藏效果
Oct 26 Javascript
详解如何探测小程序返回到webview页面
May 14 Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 Javascript
OpenLayers3实现鼠标移动显示坐标
Sep 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 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
PHP 循环删除无限分类子节点的实现代码
2013/06/21 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
thinkphp中U方法按路由规则生成url的方法
2018/03/12 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
JS验证不重复验证码
2017/02/10 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
jQuery中each方法的使用详解
2018/03/18 jQuery
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
python 从远程服务器下载东西的代码
2013/02/10 Python
pygame学习笔记(2):画点的三种方法和动画实例
2015/04/15 Python
Python入门必须知道的11个知识点
2018/03/21 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python实现PCA降维的示例详解
2020/02/24 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
PHP面试题及答案一
2012/06/18 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
测绘工程系学生的自我评价
2013/11/30 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
名人演讲稿范文
2014/09/16 职场文书
党的群众路线对照检查材料范文
2014/09/24 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技