gpt4 book ai didi

javascript - ES6 对象中的 setInterval

转载 作者:行者123 更新时间:2023-12-03 01:10:36 27 4
gpt4 key购买 nike

我有以下对象。我一直工作直到使用 setinterval 。我意识到this成为对象timeout

class test{
constructor(){
this.counter = 0
}
startCounter(){
this.increment()
setInterval(this.increment, 1000)
}
increment(){
this.counter++
console.log(this.counter)
}

}

var t = new test()
t.startCounter()

输出:

1
NaN
NaN
NaN
NaN
NaN
NaN

How to access the correct `this` inside a callback?建议我应该使用 var self = this但ES6不支持私有(private)变量

最佳答案

请尝试这个:

class test{
constructor(){
this.counter = 0
}
startCounter(){
this.increment()
setInterval(this.increment.bind(this), 1000)
}
increment(){
this.counter++
console.log(this.counter)
}

}

var t = new test()
t.startCounter()

关于javascript - ES6 对象中的 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com