programador clic (Català)

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

a El codi anterior està malament. L’abast de innerFun () està dins de outsideFun (), i dir-fora de outsideFun () està malament.
Canvieu al següent, que és el tancament: a

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è és un tancament?
Quan es fa referència a una funció interna fora del seu abast, es crea un tancament de la funció interna. Si la funció interna fa referència a una variable situada en una funció externa, aquestes variables no s’emmagatzemaran a la memòria després que es truqui a la funció externa. Alliberar perquè els tancaments els necessiten.
—————————————- ————————————————– ————–
Vegem un altre exemple. a

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

El resultat és 0,4. Perquè la paraula clau var s’usa dins de la funció per mantenir l’abast d’un outFun () intern.
Mira el següent codi novament: a

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

a El resultat és 0, 0 és estrany, per què?
la cadena d’abast és un terme que descriu una ruta al llarg de la qual es pot determinar el valor d’una variable. Quan es realitza a = 0, pel fet que no s’utilitza la paraula clau var, l’operació d’assignació seguirà la cadena d’abast a var a = 4; I canvia el seu valor.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *