我有一个看起来很基础的JavaScript问题,但我无法理解。为什么下面的代码片段可以运行(从w3学校摘录)?
本质上我想问的是为什么下面的"myVar"变量会在没有显式调用的情况下执行setInterval方法?我最好的猜测是这与JavaScript处理变量赋值的方式有关?
<html>
<body>
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>
<button onclick="myFunction()">Try it</button>
<script>
var myVar;
function myFunction() {
myVar = setInterval(alertFunc, 3000);
}
function alertFunc() {
alert("Hello!");
}
</script>
</body>
</html>
如果需要进一步澄清,这里是我目前工作中的代码片段:
var refresh = setInterval(function() {
$("#div").load('Query.html');
}, 1000);
所以我的问题是,为什么上述代码可以正常工作而不需要在其他地方调用“refresh”变量?