如何使用“set”与“setInterval”来获取对象文字以调用其自己的方法之一?
这是一个例子。 这有效,我理解为什么它有效。 timer对象每秒调用一次自己的tick方法
var timer =
{
start: function()
{
var self = this;
setInterval(function(){self.tick();}, 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我尝试使用“call”来简化此代码。 下一个例子是我想出的最好的例子。 但它不起作用:tick方法只调用一次,然后我得到一个类型错误。
var timer =
{
start: function()
{
setTimeout.call(this, this.tick(), 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我想我真的不明白呼叫是如何运作的。 谁能解释我做错了什么?
答案 0 :(得分:11)
答案 1 :(得分:0)
这就是我最终的结果:
var timer = {
time: 0,
start: function() {
var timerTick = this.tick.bind(this);
window.setInterval(function() {
timerTick();
}, 1000);
},
tick: function() {
this.time += 1;
console.log(this.time);
}
};
timer.start();