作家
登录

Javascript 定时器调用传递参数的方法

作者: 来源:www.28hudong.com 2013-03-30 02:09:46 阅读 我要评论

无论是window.setTimeout 还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必需要带参数,这就需要想方法解决.例如对于函数hello(_name),它用于针对用户名显示欢迎信息: 复制代码 代码如下: var userName="Tony"; //根据用户名显示欢迎信息 function hello(_name){ alert("hello,"+_name); } 这时,如果企图使用以下语句来使hello函数延迟3 秒执行是不可行的: window.setTimeout(hello(userName),3000); 这将使hello函数立即执行,并将返回值作为调用句柄传递给setTimeout 函数,其结果并不是程序需要的.而使用字符串形式可以达到想要的结果: window.setTimeout("hello(userName)",3000); 这里的字符串是一段JavaScript 代码,其中的userName 表示的是变量.但这种写法不够直观,而且有些场合必须使用函数名,下面用一个小技巧来实现带参数函数的调用: 复制代码 代码如下: <script language="JavaScript" type="text/javascript"> <!-- var userName="jack"; //根据用户名显示欢迎信息 function hello(_name){ alert("hello,"+_name); } //创建一个函数,用于返回一个无参数函数 function _hello(_name){ return function(){ hello(_name); } } window.setTimeout(_hello(userName),3000); //此处也可以写为window.setTimeout( function(){return hello(userName)}, 3000); //就不用再定义function _hello() //--> </script> 这里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个函数内部使用了外部函数的参数,从而对其调用,不需要使用参数.在window.setTimeout函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功能.

  推荐阅读

  Javascript实现的CSS代码高亮显示

相比JavaScript,CSS的语法就简单多了,主要是处理注释、字符串、CSS样式名称、CSS样式值、缩进和换行,具体详情请看代码。 Javascript实现CSS代码高亮显示 body{ font-size:12px; line-he>>>详细阅读


本文标题:Javascript 定时器调用传递参数的方法

地址:http://www.17bianji.com/kaifa2/JS/27724.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)