Programmatore Fare clic su (Italiano)

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

Il codice precedente è sbagliato. Lo scopo di Innerfun () è all’interno di outsidefun () e chiamalo da outsidefun () è sbagliato. Passa al seguente, che è la chiusura:

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

Che cos’è una chiusura?
Quando si fa riferimento a una funzione interna fuori dalla portata, viene creata una chiusura della funzione interna. Se la funzione interna si riferisce a una variabile situata in una funzione esterna, queste variabili non verranno memorizzate nella memoria dopo che si chiama la funzione esterna. Liberare perché le chiusure ne hanno bisogno.
—————————————— —————————————————- ————–
Vediamo un altro esempio.

Il risultato è 0.4. Poiché la parola chiave VAR viene utilizzata nella funzione per mantenere l’intervallo di un outfun interno ().
Vedi nuovamente il seguente codice:

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

Il risultato è 0 , 0 è raro, perché?
La catena dell’ambito è un termine che descrive un percorso lungo il quale può essere determinato il valore di una variabile. Se eseguita a = 0, poiché la parola chiave VAR non viene utilizzata, l’operazione di assegnazione seguirà la catena del campo in var a = 4; E cambia il suo valore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *