易截截图软件、单文件、免安装、纯绿色、仅160KB

Javascript 定时器调用传递参数的使用方法(转)

 Javascript 定时器调用传递参数的使用方法
from:txdnet.cn, Date:2008-04-24 08:18:36.0, Hit:317
Tag:0 
Do:收藏到IE Google baidu yahoo QQ书签 mySpace 评论(0) 轉爲繁體 大 中 小
无论是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 的forEach函数

在Base2中找到一个叫forEach的函数,是我见过的最好的实现。挖出来分析一下。它能对各种普通对象,字符串,数组以及类数组进行遍历。如果原游览器的对象已实现此函数,它则调用原对象的函数。
function forEach(object, block, context, fn) {
if (object == null) return;
if (!fn) {
if (typ ......

javascript中最常用的56个技巧

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

Javascript中最常用的55个经典技巧

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

call javascript in firefox


方法一、
NPN_GetURL(m_Instance, "javascript:test()",  NULL);
方法二、
 NPVariant rval;
 NPN_InvokeDefault(m_Npp,  objectDisconnect ,NULL, 0,&rval);
 NPN_ReleaseVariantValue(&rval);
以下是javascript
 <script type="text/javascript"> 
 &nb ......

40个常用网站javascript脚本

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="return f ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号