setinterval javascript中定义的访问计数变量

时间:2018-08-04 04:38:54

标签: javascript

我在setInterval函数内部有一个计数变量,我想在外部访问此计数变量。请提出建议。我的代码段如下所示。

 (function(){
    var count=0;
    setInterval(function(){ 
    		count=count+1;
    		//able to access count.
    		console.log(count);
    }, 1000)
    	//I am not able to access count here.
    console.log(count);
 })()

2 个答案:

答案 0 :(得分:0)

由于必须调用设置间隔方法,因此无法立即访问计数。

如果您立即按代码中所示访问它,则最终将得到在设置间隔方法之前调用的初始值。

您可以在一段时间后控制自己的值,并查看计数是否已更新。 Javascript是异步的。

答案 1 :(得分:0)

您的外部console.log(count)在间隔有机会更新变量之前正在运行。

如果稍后运行它,它将访问更新的变量。例如,您可以在事件处理程序中访问它,它将显示新值。

(function() {
  var count = 0;
  setInterval(function() {
    count = count + 1;
    //able to access count.
    console.log(count);
  }, 1000)

  document.getElementById("b").addEventListener("click", function() {
    document.getElementById("output").innerText = count;
  });
})()
<button id="b">Show counter</button>
<br> Counter value: <span id="output"></span>