js em compreender o alcance e a cadeia de escopo

O âmbito e o escopo da cadeia

escopo

  • Scope é o ambiente de execução de código ambiente de execução, ambiente de execução global é o escopo global, a função é o escopo privada, eles são memória de pilha
  • ambiente de execução define as variáveis ​​de dados ou outras funções têm acesso a, determinar o seu próprio comportamento. Cada objeto variável de ambiente de execução tem uma associada, todas as variáveis ​​e funções definidas no ambiente são armazenados neste objeto. Enquanto o nosso código não pode acessar o objeto, mas o analisador vai usá-lo em segundo plano enquanto o processamento dos dados
  • ambiente de execução global é o mais periférico de um ambiente de execução. Dependendo da implementação do ECMAScript, onde o ambiente de acolhimento, o ambiente de execução objeto não representa a mesma
  • Em um navegador da Web, ambiente de execução global é considerado o objeto janela, para todas as variáveis ​​e funções globais são criados como as propriedades e métodos do objeto janela
  • No ambiente NODE, ambiente de execução global é uma meta global
  • Um ambiente de execução depois de tudo o código for concluído, o ambiente é destruído, excepto no caso de todas as definições de variáveis ​​e função também será destruída (quando ambiente de execução global até sai do aplicativo, como fechar a página do browser ou web, será destruição)
  • Cada função tem seu próprio ambiente de execução. Quando o fluxo entra realizar uma função, a função vai ser empurrado para o meio ambiente de uma pilha. E depois as executa a função, a pilha é estalado ambiente, retornando o controle para o ambiente de execução antes. ECMAScript fluxo de execução do programa precisamente controlada por um mecanismo conveniente para este
  1. O escopo é pilha aberta a execução de código de memória
  2. âmbito privado ----> Executa a função irá formar um âmbito privado
  3. escopo global ----> para abrir uma página irá formar um escopo global
  4. variáveis ​​privadas ----> formado nas variáveis ​​privadas dentro do escopo (declaração var por; parâmetro)
  5. As variáveis ​​globais ----> variável no escopo global formada (var a = 12 ou não declarada dentro de uma função, atribuição direta variável)

A cadeia do escopo

Quando o código é executada num ambiente, ela cria um objecto variável de cadeia do escopo (escopo formação cadeia)

  • A parte dianteira da cadeia do escopo, ambiente de código de objecto variável onde a corrente é sempre executado
  • Próximo objeto na cadeia de escopo do ambiente externo, e os próximos objetos variáveis ​​do ambiente externo para o outro, até que o ambiente de execução mundial
  • execução global objeto variável de ambiente é sempre o último objeto na cadeia de escopo

ambiente interno pode acessar todo o ambiente externo através da cadeia de escopo, mas não pode acessar o ambiente externo, ambiente interno de todas as variáveis ​​e funções

var n = 10;
function outer(){
  function inner(){
    function center(){
      console.log(n);
    }
    center();
  }
  inner();
  var n = 15;
}
outer(); //=> undefined

Quando dentro da função, você precisa acessar uma variável, a própria função irá visitar primeiro o objeto variável, se houver essa variável, se não, ele vai continuar a procurar o escopo ao longo da cadeia até que o escopo global. Se a variável é usado para encontrar o valor do objeto variável em um objeto variável

Devido a localizar variáveis ao longo da cadeia de escopo para alcançar, por isso também conhecida como cadeia de escopo de variáveis para encontrar o mecanismo de
este mecanismo também explica as variáveis locais do que as variáveis globais mais rápido, porque a meio do processo de pesquisa mais curto. Mas o motor de JavaScript faz um bom trabalho otimizar o identificador de consulta, assim que esta diferença é insignificante

Publicado 21 artigos originais · ganhou elogios 0 · Visualizações 279

Acho que você gosta

Origin blog.csdn.net/my466879168/article/details/104849459
Recomendado
Clasificación