;
Insérer le titre ici >
/*
* 1. Toutes les variables dans js sont publiques
2 Il n'y a pas de variables statiques dans js
3. Fermeture : les variables en dehors de la fonction peuvent être appelées depuis l'intérieur de la fonction. ; vice versa, pas
*/
var r=10;
function test1(){
var r2="abc"; >}
//alert(r2);//r2 à l'intérieur de la fonction inaccessible
test1();
//C'est également ok dans les fonctions imbriquées
function test2(num1){
function test3 (num2,num3){
return num2 num3 num1;
}
return test3(10,20)
}
//alert(test2(30)
// ----------Fermeture en boucle--------------------
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()); :" arr2[0]);
alert("arr:" arr2[1]());
alert("arr:" arr2[2]());
//= == =======Les résultats des trois boîtes pop-up ci-dessus sont tous 4==========
/*Analyse des raisons :
Comprendre quelles sont les fonctions en JavaScript ?
Une fonction est un bloc de code exécutable. Une fonction peut également être représentée par une variable. Par exemple, la deuxième façon de définir une fonction est
var add=new Function("a","return a 10. "); l'essence sous-jacente est que ce nom de fonction pointe vers
ce morceau de code exécutable créé pour la variable.
* Premièrement, une fois la fonction testfun exécutée, arr[0], arr[1] et arr[] stockent tous la même
fonction de bloc de code exécutable(){
return r
} C'est-à-dire que les trois ci-dessus ne sont que des variables de fonction. Pour les exécuter, il vous suffit d'ajouter () après le nom de la variable
Et la valeur de r à ce moment est 4.
Lors de l'exécution de arr[. 0](), c'est équivalent. Le code de ce bloc de code est exécuté.
Le résultat final est donc return r, qui renvoie bien sûr 4.
*/