Bob enthält nur die ID des Intervalls, in dem er gelöscht wurde. Wenn Sie clearInterval aufrufen, wird das Intervall abgerufen, das mit dieser ID verknüpft ist, und es wird gelöscht. Die ID wird überhaupt nicht geändert.
siehe hier für eine Demonstration
Beispiel:
<html>
<head>
<title>Javascript clearInterval</title>
</head>
<body onload="startInterval();">
<center>
<div id="myTime"></div>
<input type="button" value="start Interval" onclick="startInterval();" />
<input type="button" value="stop Interval" onclick="stopInterval();" />
</center>
<script language="javascript">
var interval;
function startInterval()
{
// setInterval of 1000 milliseconds i.e. 1 second
// to recall the startTime() method again n again
interval = setInterval("startTime();", 1000);
}
function startTime()
{
// Date object to get current time
var timeFormat = new Date();
// set the current time into the HTML div object.
document.getElementById('myTime').innerHTML = timeFormat.toLocaleTimeString();
}
function stopInterval() //***********IMPORTANT FUNC******************
{
// clearInterval to stop the setInterval event
alert(interval);
clearInterval(1);
}
</script>
</body>
</html>
Dies zeigt Ihnen die ID des Intervalls (die zuvor von setInterval zurückgegeben wurde). Wenn Sie wissen, dass die ID des Intervalls 1 ist, können Sie einfach clearInterval(1) verwenden, um das Intervall zu löschen. Ihre Methode, bob auf null zu setzen, ist also eine gute Lösung. Stellen Sie nur sicher, dass !bob nicht true zurückgibt, wenn bob zufällig 0 ist. :D