1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JS中setInterval setTimeout不能传递带参数的函数的解决方案【javascript】

JS中setInterval setTimeout不能传递带参数的函数的解决方案【javascript】

时间:2021-10-22 18:48:41

相关推荐

JS中setInterval setTimeout不能传递带参数的函数的解决方案【javascript】

web前端|js教程

setInterval,setTimeout,传递参数

web前端-js教程

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

这就需要想方法解决。

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

setInterval(“foo(id)”,1000);

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

asp 旅游公司 源码,vscode下载c语言后,ubuntu桌面查看,vue项目与tomcat,requests开发爬虫,php设计模式 工厂模式,好的seo系统代理平台,dedecms网站访问量,淘宝客单页模板lzw

window.setInterval(function()

{

foo (id);

}, 1000);

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

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

c 源码网站,boot进不去ubuntu,tomcat算编译器吗,爬虫获取canvas数据,105个php入门教程交流,seo排名加盟lzw

function foo(id)

{

alert(id);

}

function _foo(id)

{

return function()

{

foo(id);

}

}

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

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

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

D、修改setInterval

响应式建站系统源码,vscode配置c开发,ubuntu手机待机,tomcat用域名,sqlite3添加表项,网络爬虫国内外研究情况,php防伪系统,seo培训推荐sem,收费电影网站破解,网页制作源代码成品下载,织梦生成模板lzw

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。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。