Programmeur Cliquez sur

function outerFun()
{
var a=0;
function innerFun()
{
a++;
alert(a);
}
}
innerFun()

Le code précédent est faux. Le champ d’application de InnerFun () est à l’extérieur de Feun () et l’appelez hors de l’extérieur () est faux ().
Basculer sur les suivants, qui est la fermeture:

function outerFun()
{
var a=0;
function innerFun()
{
a++;
alert(a);
}
return innerFun; // nota aquí
}
var obj=outerFun();
obj (); // el resultado es 1
obj (); // El resultado es 2
var obj2=outerFun();
obj2 (); // el resultado es 1
obj2 (); // El resultado es 2

> Qu’est-ce qu’une fermeture?
Lorsque vous faites référence à une fonction interne hors de portée, une fermeture de la fonction interne est créée. Si la fonction interne fait référence à une variable située dans une fonction externe, ces variables ne seront pas stockées dans la mémoire une fois qu’elle s’appelle la fonction externe. Liberate parce que les fermetures en ont besoin.
—————————————- ———————————————————————————————————————————————————————————————————————————————————————————————————— —————- Voyons un autre exemple.

Le résultat est de 0,4. Parce que le mot-clé VaR est utilisé dans la fonction pour maintenir la plage d’une sortie interne ().
Voir à nouveau le code suivant:

function outerFun()
{
// no var
a =0;
alert(a);
}
var a=4;
outerFun();
alert(a);

Le résultat est 0 , 0 Il est rare, pourquoi?
La chaîne d’étendue est un terme qui décrit un itinéraire le long de laquelle la valeur d’une variable peut être déterminée. Lorsqu’il est effectué à = 0, car le mot-clé Var n’est pas utilisé, l’opération d’affectation suivra la chaîne de la plage à Var A = 4; Et cela change sa valeur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *