Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaScript中通用全局变量和作为变量的对象之间的混淆_Javascript_Global Variables_Jsobject - Fatal编程技术网

javaScript中通用全局变量和作为变量的对象之间的混淆

javaScript中通用全局变量和作为变量的对象之间的混淆,javascript,global-variables,jsobject,Javascript,Global Variables,Jsobject,下面是我的代码。当我在myTime()函数外部调用myDate变量以创建Date()对象时,setInterval()函数不会启动,但在myTime()函数内部时会启动。正如我所知,myDate变量是一个全局变量,它应该在函数内部或外部工作。但是为什么我在函数外部创建Date()对象时,setInterval()方法没有触发呢?专家解释了这些事情。短暂性脑缺血发作 var myDate = new Date(); function myTime(){ document.g

下面是我的代码。当我在
myTime()
函数外部调用
myDate
变量以创建
Date()
对象时,
setInterval()
函数不会启动,但在
myTime()
函数内部时会启动。正如我所知,
myDate
变量是一个全局变量,它应该在函数内部或外部工作。但是为什么我在函数外部创建
Date()
对象时,
setInterval()
方法没有触发呢?专家解释了这些事情。短暂性脑缺血发作

var myDate = new Date();
    function myTime(){
        document.getElementById('text').innerHTML = myDate.getHours() + ":" + myDate.getMinutes() + ":" + myDate.getSeconds();
    }
    setInterval(myTime, 1000);

您是对的:
myDate
变量可以从
myTime()
函数访问,但如果在其外部声明,则其值不会更改。在下面的代码段中,我又创建了一个外部变量
i
,以表明它可以从函数内部访问:

var myDate=新日期();
var i=0;
函数myTime(){
document.getElementById('text').innerHTML=myDate.getHours()+“:“+myDate.getMinutes()+”:“+myDate.getSeconds()+”(“+i++”);
}
设置间隔(myTime,1000)

更新了问题。也许这会帮助你更好地理解。@AshikurRahman为什么你认为
setInterval()
不能启动?如果你运行第一个代码段,你会发现
i
每秒都会改变是的,但是秒数不会随着时间间隔而改变?我是新来的programming@AshikurRahman“但如果它在它之外声明,它的值不会改变”。