js setTimeout 常见问题小结


Posted in Javascript onAugust 13, 2013

一、 setTimeout this指向问题
setTimeout("this.count()",1000)中的this指的是window对象.
js的setTimeout定义为

window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){ 
//.....代码 
return timer//返回一个标记符 
}

所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。
解决方法:
1、在调用setTimeout前先保存this,如self=this; setTimeout("self.count()", 1000);
2、使用jquery的$.proxy改变this指向,如$.proxy(setTimeout("this.count()"), this);
二、向setTimeout传入参数
function init(){ 
var url = "<%=basePath%>fetchwater.do?method=searchRealWater&xzqh=" + "<%=xzqh%>" + "&rand="+Math.random(); 
//alert(url); 
window.setTimeout(function(){ searchJDWater(url);},100); 
}

亲测可以传入任意参数,可以是string类型也可以是其他的类型,只是在传入this时要注意用上面的解决方法。
附上一个更加详细的向settimeout传参方法链接https://3water.com/article/40524.htm
Javascript 相关文章推荐
如何实现动态删除javascript函数
May 27 Javascript
js实现点小图看大图效果的思路及示例代码
Oct 28 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
Apr 15 Javascript
Javascript无参数和有参数类继承问题解决方法
Mar 02 Javascript
javascript创建函数的20种方式汇总
Jun 23 Javascript
AngularJS基础 ng-dblclick 指令用法
Aug 01 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
Oct 15 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
VueJs组件prop验证简单介绍
Sep 12 Javascript
Vue多种方法实现表头和首列固定的示例代码
Feb 02 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
删除select中所有option选项jquery代码
Aug 12 #Javascript
js获取本机的外网/广域网ip地址完整源码
Aug 12 #Javascript
JavaScript解析URL参数示例代码
Aug 12 #Javascript
JS实现Enter键跳转及控件获得焦点
Aug 12 #Javascript
获取数组中最大最小值方法js代码(自写)
Aug 12 #Javascript
使用js对select动态添加和删除OPTION示例代码
Aug 12 #Javascript
判断ie的两种简单方法
Aug 12 #Javascript
You might like
php下载文件的代码示例
2012/06/29 PHP
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
通过伪协议解决父页面与iframe页面通信的问题
2015/04/05 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
2016/01/17 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python下简易的单例模式详解
2019/04/08 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Python 在局部变量域中执行代码
2020/08/07 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
网络安全类面试题
2015/08/01 面试题
停电调休通知
2015/04/16 职场文书
预备党员介绍人意见
2015/06/01 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python