开发者社区> 问答> 正文

如果想要每过一秒将a.num的值加1,该如何实现呢?

已解决

    this.num = 0;
}
var a = new Counter();

因为使用了关键字new构造,Count()函数中的this绑定到一个新的对象,并且赋值给a。通过console.log打印a.num,会输出0

console.log(a.num);// 0

展开
收起
游客dndzx3dbvf2jq 2022-08-09 22:11:46 248 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    使用箭头函数。

    function Counter() {
        this.num = 0;
        this.timer = setInterval(() => {
            this.num++;
            console.log(this.num);
        }, 1000);}
    var b = new Counter();// 1// 2// 3// .
    
    

    通过Counter构造函数绑定的this将会被保留。在setInterval函数中,this依然指向我们新创建的b对象。

    2022-08-09 23:35:36
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载