我无法调试Clock类的增量和tick方法。时钟的秒属性应该每秒递增1,但是秒会引发NaN错误。
增量的目标是每次调用Clock实例上的秒数增加1。 Tick每秒调用一次增量方法,以实现这一目标。
function Clock() {
this.seconds = 0;
}
Clock.prototype.increment = function() {
this.seconds = this.seconds + 1;
console.log('Seconds: ' + this.seconds);
};
Clock.prototype.tick = function() {
setInterval(this.increment, 1000);
};
var timex = new Clock();
timex.tick();
答案 0 :(得分:0)
this
是窗口。
setInterval(this.increment.bind(this), 1000);
答案 1 :(得分:0)
问题是,在setInterval
处理程序中,this
不再指向您的Clock
对象,而是指向全局命名空间。最简单的解决方案就是将this
绑定到this.increment
:
Clock.prototype.tick = function() {
setInterval(this.increment.bind(this), 1000);
};