问题:在setInterval和setTimeout中传入函数时,函数中的this会指向window对象

解决方法:

1. 将当前对象的this存为一个变量,定时器内的函数利用闭包来访问这个变量。var self = this;

2.利用bind绑定

setTimeout(function(){console.log(this.num);
}.bind(this), 1000) //利用bind()将this绑定到这个函数上

3. 箭头函数

setTimeout(() => {console.log(this.num);
}, 1000)    //箭头函数中的this总是指向外层调用者

参考:

http://www.cnblogs.com/zsqos/p/6188835.html

转载于:https://www.cnblogs.com/codebook/p/10363296.html

setInterval和setTImeout中的this指向问题相关推荐

  1. 关于setInterval和setTImeout中的this指向问题

    问题描述 前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,如下例: var num = 0; fun ...

  2. 关于setTimeout函数中的this指向问题

    为什么setTimeout函数的延迟执行函数中this指向window,但是延迟执行函数是箭头函数this指向obj? 根据下面的两点原因解释,foo和foo2中的this都指向obj,但是其中set ...

  3. 普通函数和箭头函数中的this指向

    普通函数的this指向Window function a(){console.log(this) } a() //Window Dom元素绑定事件时的this,句柄里的 this 值是该元素的引用 d ...

  4. html 取消settimeout,JavaScript中停止执行setInterval和setTimeout事件的方法

    js 代码中执行循环事件时,经常会用到 setInterval 和 setTimeout 这两个方法,关于这两个方法的细节这里不详细讨论了,简要分享下在需要停止循环事件的时候该如何操作. (1)set ...

  5. js中setInterval与setTimeout的区别

    一.setInterval与setTimeout的区别 1.setInterval setInterval() 方法可按照指定的周期来调用函数(以毫秒为单位) 语法: setInterval(函数表达 ...

  6. JS中setInterval、setTimeout不能传递带参数的函数的解决方法

    setInterval 和 setTimeout 这两个函数比较好用,但会遇到比如说我隔个几秒后要执行的函数是带参数的,这种情况怎么办?可以用匿名函数包装处理 //不带参数的函数function te ...

  7. 理解JavaScript中this的指向详解

    this的定义和理解: this是JavaScript语言的一个关键字,它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内使用. 1.this和执行环境对象有关,和函数的声明无关. var ...

  8. setInterval和setTimeout

    setInterval和setTimeout 1. 总结 1.1. setTimeout和setInterval()的时间间隔是不可动态修改的 1.1.1. 错误方式 1.1.2. 正确方式 1.2. ...

  9. 简述JS中THIS的指向?

    这里是修真院前端小课堂,每篇分享文从 八个方面深度解析前端知识/技能,本篇分享的是: [简述JS中THIS的指向?] 大家好,我是IT修真院武汉分院web第16期的学员孟晨,一枚正直纯洁善良的web程 ...

  10. JS中this的指向与改变this指向的三个方法

    目录 一.this指向的分类 1.全局函数的调用 2.对象中函数的调用 3.setTimeout与setInterval中的this 4.事件绑定中的this 5.箭头函数中的this 6.构造函数中 ...

最新文章

  1. 重写浏览器alert解决ios端原生alert出现当前网址的URL
  2. 聊聊Elasticsearch的ExponentiallyWeightedMovingAverage
  3. softsign激活函数
  4. java设计模——反射的应用 (利用反射来去除if判断语句)
  5. UA MATH566 统计理论 QE练习题1
  6. [MVC]Controller
  7. supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了
  8. python 神经网络_100行Python代码,轻松搞定神经网络 !
  9. 有限差分法解NS方程原理
  10. JAVA在线看CAD图纸快速入门
  11. 完整的vue开发环境搭建教程
  12. dxf文件怎么转换成dwg?这种方法了解一下
  13. php随机生成微信昵称(二)
  14. antdv 表格标题换行
  15. java多线程 wait和notify方法
  16. python中的打开文件的用法_python基础之文件操作
  17. python爬斗鱼直播官网,【爬虫】nodejs爬斗鱼直播间数据实战
  18. 金融危机下企业电子商务发展
  19. unity2D横版游戏教程终章-主菜单和暂停菜单
  20. 趋势信息整合(01) 谷歌google开发者 那些事儿

热门文章

  1. angular模板加载 ----ng-template
  2. 脑力劳动者,如何休息使自己精力充沛
  3. 【位运算经典应用】 N皇后问题
  4. Docker入门者手册
  5. 利用自定义事件实现不同窗体间的通讯 -- C#篇
  6. 利用matlab使用窗函数,Matlab中窗函数的简单使用
  7. javascript中的forEach
  8. history指令显示日期时间
  9. Linux的append函数,linux block层
  10. 遍历实体包含的List