Programmer clique (Português)

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

O código anterior está errado. O escopo de Innerfun () está dentro de Outsidefun (), e o chamar de Outsidefun () está errado. Alternar para o seguinte, que é o fechamento:

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

O que é um fechamento?
Quando referência é feita a uma função interna fora do alcance, um fechamento da função interna é criado. Se a função interna se referir a uma variável localizada em uma função externa, essas variáveis não serão armazenadas na memória depois de ser chamada de função externa. Liberte porque os fechamentos precisam deles.
—————————————- ————————————————– ————–
Vamos ver outro exemplo.
O resultado é 0,4. Como a palavra-chave var é usada dentro da função para manter o intervalo de um outfun interno (). Veja o seguinte código novamente:

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

Resultado é 0 0 é raro, por quê?
A corrente de escopo é um termo que descreve uma rota ao longo do qual o valor de uma variável pode ser determinado. Quando executado em = 0, porque a palavra-chave var não é usada, a operação de atribuição seguirá a cadeia de alcance para var A = 4; E muda seu valor.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *