Closures JavaScript
variáveis JavaScript podem ser variáveis locais ou globais.
variáveis privadas pode ser usado encerramento.
Variáveis globais
A função pode acessar variáveis definidas pelas funções internas, tais como ?:
Função também pode ser acessada fora das variáveis de função definida, tais como:
Um exemplo da parte de trás, uma é uma variável global.
Na página web pertencem ao objeto de janela variável global.
As variáveis globais podem ser utilizados em todos os scripts na página.
No primeiro exemplo, um é uma variável local.
As variáveis locais só pode ser usado para definir o seu funcionamento interno. Por outra função ou código de script não está disponível.
Mesmo variáveis globais e locais com o mesmo nome, eles também são duas variáveis diferentes. Modificar um, ele não vai afectar o valor do outro.
Se você não declarar uma variável usando a palavra-chave var, então é uma variável global, mesmo que ele é definido dentro da função. |
ciclo de vida variável
Âmbito de variáveis globais são globais, ou seja, durante todo o programa JavaScript, as variáveis globais estão em toda parte.
Na variável declarada dentro de uma função, só funcionam dentro da função. Essas variáveis são locais, de âmbito local; parâmetro da função é localizada, apenas no interior do trabalho função.
contador Dilemma
Se você quiser imaginar em algumas estatísticas numéricas, e os contadores estão disponíveis em todas as funções.
Você pode usar variáveis globais, função define o contador é incrementado:
Exemplos
add function () {
marcador + = 1;
}
add ();
add ();
add ();
// Contador é agora 3
tente »
A mudança valor do contador ocorreu na implementação da função add ().
Mas a questão é, qualquer script na página pode alterar o contador, mesmo se não há nenhuma chamada para adicionar a função ().
Se eu declarar uma função dentro do balcão, se não chamar a função não modificará o valor do contador:
Exemplos
var contador = 0;
marcador + = 1;
}
add ();
add ();
add ();
// Intenção é a de saída 3, mas não, a saída é de 1!
tente »
O código acima não vai sair corretamente, cada vez que eu chamada para adicionar a função de (), o contador será definido para 1.
função inline JavaScript pode resolver este problema.
funções aninhadas JavaScript
Todas as funções podem acessar variáveis globais.
De fato, em JavaScript, todas as funções podem acessá-los no chão do escopo.
JavaScript suporta funções aninhadas. A função aninhada pode acessar variáveis sobre a camada de função.
Neste exemplo, a função aninhada mais () pode acessar o contador variável função pai:
Exemplos
var contador = 0;
função de adição () {counter + = 1;}
PLUS ();
voltar balcão;
}
tente »
Se podemos acessar mais a função externa (), para que possamos resolver a situação do balcão.
Precisamos também de garantir que contador = 0 apenas uma vez.
Precisamos de encerramento.
Closures JavaScript
Lembre-se as chamadas de função em si fazer? Esta função irá fazer?
Exemplos
var contador = 0;
função return () {return contador + = 1;}
}) ();
add ();
add ();
add ();
3 // contador
tente »
Exemplos de analítico
Adicione a variável palavra indica o valor de retorno da função chama a si mesmo.
função de auto-chamada é realizada apenas uma vez. Definir o contador a zero. E retornar à expressão de função.
adicionar variável como uma função da utilização. A grande parte é que ele pode ser acessado no âmbito do contador camada de função.
Isso é chamado de encerramentos de JavaScript. Tem uma variável privada de modo a que a função torna-se possível.
Contador que o âmbito da protecção de uma função anônima só pode ser modificado pelo método add.
Closures são acessíveis a uma função variável escopo dentro de uma função, mesmo que a função de camada foi fechada. |