我已经尝试了无数不同的方法,花了太多时间试图解决可能过于简单的事情。出于某种原因,我无法让以下setInterval调用工作。它会调用一次,但不会每1000毫秒调用一次。对于为什么没有每1秒(1000毫秒)调用警报的原因,有些输入会有所帮助
<html>
<head>
<script>
function user(h){
this.userHunger = h;
this.userAction='Move';
this.start=function(){
this.hungerClockStart();
};
this.hungerClockStart=function(){
//setInterval(this.updateHungerScreen(),1000);
this.hungerClock = (setInterval(alert(1),1000));
};
};
var user1=new user(100);
function displayUserHunger(u){
u.start();
}
</script>
</head>
<body>
<h1>Display a User's Hunger:<br></h1>
<div>
<h2 id = 'HungerBarVisual'> </h2>
<button onclick="user1.start()">Start</button>
</div>
</body>
</html>
答案 0 :(得分:1)
类似的东西:
setInterval(this.updateHungerScreen(),1000);
表示您可能使用setInterval
错误。
这里发生的事情是this.updateHungerScreen()
的返回值将被调用为函数。所以你可能想要这个:
setInterval(this.updateHungerScreen,1000);
this.updateHungerScreen
(无括号!)是您要调用的函数。
同样setInterval(alert(1),1000)
相当于alert(1);setInterval(null,1000)
你可能想要:
setInterval(function () {
alert(1); // will get called every 1000ms
},1000);
答案 1 :(得分:0)
setInterval
使用函数对象:
this.hungerClock = setInterval(func, 1000);
如果要传递参数,则需要使用额外的匿名函数:
this.hungerClock = setInterval(function(){ alert(1) }, 1000);