【发布时间】:2018-09-07 14:34:56
【问题描述】:
我有以下对象。我一直工作到使用 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 不支持私有变量
【问题讨论】:
-
@T.J Crowder 此链接没有 ES6 对象。我没有看到这是重复的
-
该问题与“ES6 对象”无关。它与
this有关。如果你花时间阅读答案,你就会明白。 -
也许解决方案是相同的,但场景不同@T.J.克劳德
-
@JoseMato - 再次,没关系。
-
@TSR - 那里的答案远不止于此。花时间真正阅读答案并消化他们所说的内容,而不是专注于那里没有涵盖这些内容并在 30 秒后放弃的想法。这在那里的答案中得到了很好的解决,例如this one。
标签: javascript node.js object methods setinterval