第一个。这个工作,我有var start = new Date();在函数内部。
function instance(){
var start = new Date();
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function start(){
window.setTimeout(instance, 1000);
}
这是第二个不起作用的。 var start = new Date()在函数之外。
var start = new Date();
function instance(){
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function start(){
window.setTimeout(instance, 1000);
}
即使第二个是全局变量而不是私有变量,它不应该仍然有效吗?为什么有些全局变量可以工作而有些则不然呢?
答案 0 :(得分:1)
在javascript中,函数是变量,只是函数形式。因此,在第二个中,变量start
和函数start
发生冲突。例如,如果您要将function start(){
更改为function init(){
,则可以使用。
这是允许您定义
等功能的原因var foo = function() {
...
}
第一个有效,因为你有一个局部变量start
和一个全局函数start
,导致没有冲突。
var start = new Date();
function instance(){
document.getElementById("foo").innerHTML = start.getTime();
window.setTimeout(instance, 1000);
}
function init(){
window.setTimeout(instance, 1000);
}