向setTimeout传递函数参数

/***********************************
*Author:Java619
*Time:2006-08
************************************/

也许你过去在setTimeout中传参数一直是这样

setTimeout("pass(" + argu + ")",1000)

这样只能传字符串,对传递object就无能为力了,需要大费文章.然而别忘了,第一个参数还可以是function

下面举个实例:

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
< HTML >
< HEAD >
< TITLE >  向setTimeout传递函数参数 </ TITLE >
</ HEAD >
< script  type ="text/javascript" >
var _st = window.setTimeout;
window.setTimeout 
= function(fRef, mDelay) {
 
if(typeof fRef == 'function')
   
var argu = Array.prototype.slice.call(arguments,2);
   
var f = (function(){ fRef.apply(null, argu); });  
   
return _st(f, mDelay); 
  }
 
 
return _st(fRef,mDelay);
}


function hello(x,y)
alert(x
+" "+y);
}

window.setTimeout(hello,
1000,'Hello','Ceun');
</ script >
< BODY >

</ BODY >
</ HTML >

现在向setTimeout中传递带参数的函数是不是方便多了,其实就是重载了下window.setTimeout

用apply去回调前面的函数。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值