我想为我的应用实现超时功能。
我的setTimsout
代码似乎不起作用。它立即在我的控制台中输出 'call here
',而不是等待 3 秒。
谁能给我提示为什么会发生这种情况?谢谢!
main.prototype.init = function(){
var instance = this;
$('.test').each(function(){
//codes…..
window.setTimeout(instance.playAnimation(this), 3000)
});
}
main.prototype.play = function(item){
console.log('call here')
}
最佳答案
这是因为您没有向 setTimeout
传递函数,而是向 playAnimation
传递执行结果。试试这个:
var _this = this;
setTimeout(function() {
instance.playAnimation(_this);
}, 3000);
请注意,我保存了 this
的值,因为 setTimeout
函数中的 this
将引用 window
,而不是 .test
元素。
关于javascript - 在我的例子中如何创建 setTimeout ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21690174/