关于setTimeout进行参数传递时定时任务失效的解决办法
来源:互联网 发布:淘宝客收入排行榜 编辑:程序博客网 时间:2024/05/16 12:25
最近在做项目之前已经会用这个方法,但是在工作的时候遇到一个需求,要通过这个方法传参数,一下就懵了,以前使用这个方法来做定时任务的时候一直没有传过参数,现在做完了才分享一下.
1.首先不传参数的使用
function timeTest(){
alert("执行了");
}
window.setTimeout(timeTest(),3000);//3秒之后执行,也可以这样window.setTimeout('timeTest',3000);
这个是比较简单的。
2.那么传参数不应该是一样吗,那么接下来我们就一起来看一下区别.
function timeTest(obj){
alert(obj);
}
var id = 123;
2.1
window.setTimeout(timeTest(id),3000)//注:这样的话该方法会立即执行,这个定时任务就会失效。
那么下面这样行不行呢?
2.2
window.setTimeout('timeTest(id)',3000);//注:这样也是不行的他会把timeTest(id)看成方法体,会找不到方法
.
那么都不行,我们应该怎么做呢?
3
既然2.2中定时任务中的方法会立即执行,那么我们能不能在立即执行的方法中返回一个方法来作为定时任务方法呢,答案是可行的,接着看下面的。
3.1
function timeTest(obj){//希望延迟执行的方法
alert(obj);
}
function time(obj){//立即执行并返回一个无参方法供3秒后执行.
return function(){
timeTest(obj);
}
}
window.setTimeout(time(id),3000);
这样就setTimeout()方法就可以进行参数传递了,当然还有其他方法,有兴趣的朋友可以自己研究。
<script src="jquery-1.4.2.min.js"></script><script type="text/javascript">$(document).ready(function(){ var allThis = this; function timeTest(thiz) { return function(){ timeTest2(thiz);} } function timeTest2(obj){ console.log(obj); } console.log(this); setTimeout(timeTest(this),3000);});</script>
- 关于setTimeout进行参数传递时定时任务失效的解决办法
- setTimeout参数传递obj对象时,循环调用解决办法
- JS中setInterval、setTimeout不能传递带参数的函数的解决办法
- JS中setInterval、setTimeout不能传递带参数的函数的解决办法
- JS中setInterval、setTimeout不能传递带参数的函数的解决办法
- setTimeout的使用与参数传递
- setTimeout和setInterval的参数传递方法
- 关于setTimeout,理解JavaScript的定时机制
- js调用setTimeout 时传递参数
- setTimeOut如何传递参数
- js setTimeout 参数传递
- js setTimeout 参数传递
- settimeout 传递参数
- javascript settimeout传递参数
- 多任务时的参数传递处理
- setTimeout初探(二):零延迟的定时任务
- setTimeout传参数 传递多个参数的问题
- PHP session 失效不传递的解决办法
- LeetCode-Search in Rotated Sorted Array(在反转数组中的关键字)
- 贪吃蛇 HTML5 Canvas代码
- STL algorithm find() demo
- 2.1.3 外部中断
- CCTexture2D(纹理图片)和 CCTextureCache(纹理缓存)
- 关于setTimeout进行参数传递时定时任务失效的解决办法
- Android 第一篇 环境变量配置
- Codeforces Round #177 (Div. 1) B. Polo the Penguin and Houses (组合数学)
- (单片机原理与应用)大液晶屏的游戏设计(推箱子)
- 【Java】Unreachable code编译异常
- UiAutomator源码分析之获取控件信息
- 快讯:黑客找到一个破解虹膜生物安全系统的简单方法
- find() over plain array
- git Os China 第三方代码库的使用