An in depth understanding of scoped closures of variables in JavaSript

  • 2020-03-30 02:54:35
  • OfStack

 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Insert title here</title> 
<script type="text/javascript"> 
 

var r=10; 
function test1(){ 
var r2="abc"; 
//alert(r) 
} 
//alert(r2);// Inside a function that cannot be accessed r2 
test1(); 
//Okay in nested functions
function test2(num1){ 
function test3(num2,num3){ 
return num2+num3+num1; 
} 
return test3(10,20) 
} 
//alert(test2(30)); 
//-- closure in loop --
function testfun(){ 
var r=1; 
var arr=[]; 
for(var x=0;x<3;x++){ 
r++; 
arr[x]=function(){ 
return r; 
} 
} 
return arr; 
} 
alert("testfun:"+testfun()); 
var arr2=testfun(); 
alert("arr:"+arr2[0]); 
alert("arr:"+arr2[1]()); 
alert("arr:"+arr2[2]()); 
//========== ==== 4========== ========== =
 

</script> 
</head> 
<body> 

</body> 
</html> 

Related articles: