在JS,不带参数的传递函数setInterval和setTimeout解决方案
在JS,setTimeout和setInterval,你不能把参数在使用函数名作为呼叫处理,在很多情况下,你需要一个参数。这需要解决。
首先,以字符串的形式:(缺陷)参数不能周期性地更改。
setInterval(foo(ID)
二、匿名功能打包(推荐)
复制代码代码如下所示:
Window.setInterval(function()
{
符(id);
},1000);
通过这种方式,可以周期性地执行富(id)函数,并传递变量id;
三。定义一个返回非参数函数的函数。
复制代码代码如下所示:
函数(id)
{
警报(id);
}
功能_foo(ID)
{
返回函数()
{
符(id);
}
}
window.setinterval(_foo(ID),1000);
一个功能_foo定义在这里,它是用来接收参数和函数没有参数返回。在这个函数中,外部函数的参数在内部使用,因此不需要调用。
橱窗里。setInterval函数,_foo(ID)是用来处理函数没有参数的回归,从而实现参数的传递函数。
四。修改setInterval
复制代码代码如下所示:
函数(id)
{
警报(id);
}
无功_sto = setInterval;
window.setinterval =函数(回调,超时参数)
{
var args = array.prototype.slice.call(参数2);
无功_cb =功能()
{
Callback.apply(null,args);
}
_sto(_cb,超时);
}
Window.setInterval(你好,3000,用户名);
上述方法也适用于setTimeout。