/******************************************************
//
// 功能: 修改window.settimeout,使之可以传递参数和对象参数
// 使用方法: window.settimeout(回调函数,延迟时间,参数1,参数n)
//
******************************************************/
var mysettimeout = settimeout;
window.settimeout = function(callback, timeout)
{
var args = array.prototype.slice.call(arguments, 2);
function callfn(){callback.apply(null, args);}
return mysettimeout(callfn, timeout);
}
/******************************************************
//
// 功能: 修改window.setinterval,使之可以传递参数和对象参数
// 使用方法: window.setinterval(回调函数,间隔时间,参数1,参数n)
//
******************************************************/
var mysetinterval = setinterval;
window.setinterval = function(callback, interval)
{
var args = array.prototype.slice.call(arguments, 2);
function callfn(){callback.apply(null, args);}
return mysetinterval(callfn, interval);
}
// 测试代码传递object
// 普通参数就不举例了
var obj = {height: 40px;}
var testtimeout = testinterval = null;
function test(obj)
{
alert(obj.height);
clearsettimeout(testtimeout);
clearinterval(testinterval);
}
var testtimeout = window.settimeout(test, 100, obj);
var testinterval = window.setinterval(test, 100, obj);
该函数兼容ie,firefox。并且可以使用clearsettimeout和clearinterval清除,比原settimeout,setinterval方便很多,并且参数可以是object。