Aqui estão 5 pequenos scripts que ajudam você a entender realmente o fechamento e os escopos do JavaScript. Antes de executar o console, tente responder o que será exibido em cada caso e, em seguida, você pode criar um arquivo de teste para verificar sua resposta. Você está pronto?
1.
A cópia do código é a seguinte:
if (! ("A" na janela)) {
var a = 1;
}
alerta (a);
2.
A cópia do código é a seguinte:
var a = 1,
b = função a (x) {
x && a (-x);
};
alerta (a);
3.
A cópia do código é a seguinte:
função a (x) {
retornar x * 2;
}
var a;
alerta (a);
4.
A cópia do código é a seguinte:
função b (x, y, a) {
argumentos [2] = 10;
alerta (a);
}
B (1, 2, 3);
5.
A cópia do código é a seguinte:
função a () {
alerta (isso);
}
A.Call (NULL);
Minhas respostas de previsão são: indefinido, 1, não sei, 10, nulo
A resposta está no final deste artigo. Você se atreve a deixar suas suposições antes de olhar para a resposta?
Resposta correta: 1. Indefinido 2. 1 3. Função a (x) {return x * 2} 4. 10 5. [Janela do objeto]