use*_*743 0 javascript settimeout
我试图给一个对象一个倒数计时器,当倒计时结束时,它应该调用一个从数组中删除该对象的函数.
array = [];
var object = {
'name' : 'user',
'limit' : function() {
setTimeout(destroyMe(this),10000);
}
}
array.push(object);
var destroyMe = function(obj) {
array.remove(obj);
}
Run Code Online (Sandbox Code Playgroud)
我知道这可能有问题,但超时功能根本不起作用,甚至不是这样的:
var object = {
'name' : 'user',
'limit' : function() {
setTimeout(console.log("dd"),3000);
}
}
Run Code Online (Sandbox Code Playgroud)
也许有人可以告诉我我的setTimeout版本的问题.谢谢
setTimeout接受对函数的引用.您拥有的代码是调用该函数.
这应该改为:
var object =
{
'name' : 'user',
'limit' : function()
{
setTimeout(function() { destroyMe(this); }, 10000);
}
}
Run Code Online (Sandbox Code Playgroud)
(this在这种情况下你可能会遇到问题,试试吧!)
var object =
{
'name' : 'user',
'limit' : function()
{
setTimeout( function() { console.log("dd"); },3000);
}
}
Run Code Online (Sandbox Code Playgroud)