当前位置:编程学习 > JS >>

js闭包的一个小问题

如下 两段代码
 
 
function a(){  
    var b = 1;  
      
    window.setTimeout(function(){ //用定时器来触发就不搞按钮啦  
        alert(b);  
    },3000);  
      
      
}  
a();  

 

 
 
 
function a(){  
    var b = 1;  
      
    window.setTimeout(function(){<span style="font-family: Arial, Helvetica, sans-serif;">//用定时器来触发就不搞按钮啦</span>  
  
        alert(b);  
        var b = 2;  
    },3000);  
      
      
}  
a();  

 

 
 
 
只差了一句,执行结果是什么样呢? 第一种,顺利弹出1
 
第二种确是 undefined
 
如何理解?
 
 
js会初始化用var 定义的变量导致第二个里边的b变量呗初始化局部变量,意思是b已经被释放了
 
补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,