工作中遇到的问题【js】

本文探讨了JavaScript中setInterval函数执行问题,重点讲述了`this`关键字在定时器中的作用域困扰,如何通过使用闭包和局部变量来确保`moveright`函数的正确调用。通过实例和博客资源,读者可以理解如何避免`this`指向错误并修复定时器问题。
摘要由CSDN通过智能技术生成

js

关于setInterval值执行一次及this的作用域

原代码

 toplay(){
        return setInterval(this.moveright(),2000);
    }

查询后得知moveright()应改为movright
查询博客: 关于setInterval只执行一次的原因
JavaScript定时器setInterval()只执行一次解决方法

进一步修改

 toplay(){
        return setInterval(this.moveright,2000);
    }
 toplay(){
        return setInterval(function(){
       	 this.moveright()
        },2000);
    }

都报错this.moveright不是函数,再次解决发现是this的指向域问题,继续查询资料最终修改

 toplay(){
        var _this=this;
        var timer=function(){
            console.log(_this)
            _this.moveright();
        }
        return setInterval(timer
        ,2000);
    }

查询博客: JS中的this指向

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值