javascript代码实例教程-JS中setInterval、setTimeout不能传递带参数的函数的解决办法

发布时间:2019-05-24 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-JS中setInterval、setTimeout不能传递带参数的函数的解决办法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,

这就需要想方法解决。

一、采用字符串形式:——(缺陷)参数不能被周期性改变

setInterval("foo(id)",1000);


二、匿名函数包装 (推荐)

window.setInterval(function()

    {

foo (id);

    }, 1000);

   这样就可以周期性执行foo(id)这个函数,而且把变量id传递进去;


三、定义返回无参函数的函数

function foo(id)

{

   alert(id);

}

function _foo(id)

{

return function()

{

foo(id);

}

}

window.setInterval(_foo(id),1000);

这里定义了一个函数_foo,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。

在 window. setInterval函数中,使用_foo(id)来返回一个不带参数的函数句柄,从而实现了参数传递的功能。


四、修改setInterval

function foo(id)

{

alert(id);

}

VAR _sto = setInterval; 

window.setInterval = function(callback,timeout,param)

var args = Array.PRototyPE.slice.call(arguments,2); 

var _cb = function()

callback.apply(null,args); 

}  

_sto(_cb,timeout); 

}

window.setInterval(hello,3000,userName);

以上的所有方法也适合setTimeout。
 

 

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-JS中setInterval、setTimeout不能传递带参数的函数的解决办法全部内容,希望文章能够帮你解决javascript代码实例教程-JS中setInterval、setTimeout不能传递带参数的函数的解决办法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。