zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用自定义setTimeout和setInterval使之可以传递参数和对象参数

对象 使用 参数 可以 自定义 传递 setTimeout setInterval
2023-06-13 09:14:09 时间
/******************************************************
//
//功能:修改window.setTimeout,使之可以传递参数和对象参数
//使用方法:window.setTimeout(回调函数,延迟时间,参数1,参数n)
//
******************************************************/
varmySetTimeOut=setTimeout;
window.setTimeout=function(callback,timeout)
{
varargs=Array.prototype.slice.call(arguments,2);
functioncallFn(){callback.apply(null,args);}
returnmySetTimeOut(callFn,timeout);
}
/******************************************************
//
//功能:修改window.setInterval,使之可以传递参数和对象参数
//使用方法:window.setInterval(回调函数,间隔时间,参数1,参数n)
//
******************************************************/
varmySetInterval=setInterval;
window.setInterval=function(callback,interval)
{
varargs=Array.prototype.slice.call(arguments,2);
functioncallFn(){callback.apply(null,args);}
returnmySetInterval(callFn,interval);
}
//测试代码传递object
//普通参数就不举例了
varobj={height:40px;}
vartestTimeout=testInterval=null;
functiontest(obj)
{
alert(obj.height);
clearSetTimeOut(testTimeout);
clearInterval(testInterval);
}
vartestTimeout=window.setTimeout(test,100,obj);
vartestInterval=window.setInterval(test,100,obj);
该函数兼容ie,firefox。并且可以使用clearSetTimeOut和clearInterval清除,比原setTimeout,setInterval方便很多,并且参数可以是object。