js给定时器调用传递参数

给定时器调用传递参数
无论是window.setTimeout 还是window.setInterval,在使用函数名作为调用句柄时都不
能带参数,而在许多场合必需要带参数,这就需要想方法解决。例如对于函数hello(_name),
它用于针对用户名显示欢迎信息:
var userName="jack";
//根据用户名显示欢迎信息
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);
//-->
</script>
这里定义了一个函数_hello,用于接收一个参数,并返回一个不带参数的函数,在这个
函数内部使用了外部函数的参数,从而对其调用,不需要使用参数。在window.setTimeout
函数中,使用_hello(userName)来返回一个不带参数的函数句柄,从而实现了参数传递的功
能。

js给定时器调用传递参数

时间: 2024-10-11 17:58:30

js给定时器调用传递参数的相关文章

php向js的函数内传递参数-用经纬度计算2点间距离

有时候需要从php传递数据到js,这时候该怎么办呢?实例;php微信开发,用经纬度计算2点间的距离,2个坐标分别从php和js获得. 基于tp5框架的开发. 说一下注意事项: 1.php实际不能直接传递数据到js,他们两个没办法直接交互 2.可以通过一个桥梁交互,就是html 3.做法就是把js写在html页面内,然后再把把php传递过来的数据变量写在js代码内. 主要易混点在html页面 核心代码如下,从857行开始: <!DOCTYPE html> <!-- saved from u

js 中利用url传递参数的编码问题

今天犯二了,解析url传递的参数怎么都不对,将结果log出来,发现是编码的问题,然而,我居然忘了给怎么编码解码....所以,有必要记一下,下次犯二就不用去翻别人写的了 传递url时,将要传递的参数使用:encodeURI编码 $(".sidebar >ul > .side-li").click(function () { /*----发送一个查询商品,相应的名字,*/ // console.log($(this).find("h5").text());

解决JS在url中传递参数时参数包含中文乱码的问题

需要经过两次encodeURI()编码和两次decodeURI()解码, 使用encodeURI()编码时, var searchType = $("#type_select option:selected").val();//"基地动态" var searchContent = $("#search_val").val();//"aaaa" var url = encodeURI("TextSearchDetail

Asp.net WebService 传递参数长度限制

在写Web Service 接口的时候遇到了调用传递参数自动截过长的参数截取,参数类型设置的是String,传递的时候是一长串xml中,但是发项在文本里面自动截取了 找了好多方法都没有成功,最后看之前项目写的接口,把前面几行代码都给注释了就好了. /// <summary> /// MobileApproval 的摘要说明 /// </summary> //[WebService(Namespace = "http://tempuri.org/")] //[We

UIWebView开发中,js与oc,js与swift交互,相互传递参数的方法

实际开发中经常遇到需要向webView传递参数或从webView取参数,在此写了个超简单的demo供大家参考,本人js刚学了一天,所以不足之处海涵. 废话不多说,直接上代码 oc版 1 #import "ViewController.h" 2 @interface ViewController ()<UIWebViewDelegate> 3 @property (nonatomic, strong)UIWebView * webView; 4 @end 5 6 @imple

js获取url传递参数

js获取url传递参数 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET函数: <Script language="javascript"> function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (ur

前端页面js与flash交互——js获取flash对象,并传递参数

背景介绍: 最近在搞一个项目,涉及到图片选取,裁剪,上传等,由于浏览器安全性问题,js无法获取到<input type="file">中选取的文件路径,而且对照片的裁剪,抠图等由HTML5实现的功能,对各大浏览器的兼容性,真是不敢太大胆.这个时候就引进了flash,然后所有js做不了的让flash来做,然后由js来控制页面元素.就这样开始了js与as的交互之旅,听做flash的大叔说,flash调js的函数式很好调的,而js调as不大容易.最终的情况是as调js错误层出不穷

html 页面之间传递参数----js

html 页面之间传递参数----js aa.html======== <html> <head> </head> <body> <script> function submit() { var input1 = document.getElementById("inputid"); window.open("C:/Users/lenovo/Desktop/test/bb.html?inputStr=" +

使用定时器settimeout、setInterval执行能传递参数的函数

无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,这就需要想方法解决.经网上查询后整理如下: 例如对于函数hello(_name),它用于针对用户名显示欢 迎信息: var userName="jack"; //根据用户名显示欢迎信息 function hello(_name){ alert("hello,"+_name); } 这时,如果企图使用以下语句来使hello