如何使用“call”和“setInterval”来获取对象文字来调用它自己的方法之一?
这是一个例子。这有效,我理解它为什么有效。定时器对象每秒调用一次自己的tick方法
var timer =
{
start: function()
{
var self = this;
setInterval(function(){self.tick();}, 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我试图通过使用“调用”来简化这段代码。下一个例子是我想出的最好的例子。但它不起作用:tick 方法只被调用一次,然后我得到一个类型错误。
var timer =
{
start: function()
{
setTimeout.call(this, this.tick(), 1000);
},
tick: function()
{
console.log("tick!");
}
};
timer.start();
我想我真的不明白 call 是如何工作的。谁能解释我做错了什么?