Javascript Function对象扩展之延时执行函数
Javascript Function对象扩展之延时执行函数
发布时间:2016-12-30 来源:查字典编辑
摘要:不就利用window对象的setTimeout方法吗?Bingo,一点没错!如果你在一个应用里面常常要“延时执行某某函数”,那末基于DRY的...

不就利用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教程学习
编程开发子分类