JavaScript tem uma palavra -chave. O objetivo original da instrução com com o método de esboço de namespace para acesso passo a passo. Ou seja, na área de código especificada, o objeto é chamado diretamente através do nome do nó.
A função da instrução com com altera temporariamente a cadeia do escopo e reduzir os insumos repetidos.
Sua estrutura de sintaxe é:
com (objeto) {// declarações}Vamos dar um exemplo prático:
com (document.forms []) {name.value = "Lee King"; endereço.value = "Pequim"; zipcode.value = ""; }O método de escrita tradicional correspondente é:
document.forms []. name.value = "Lee King"; document.forms []. endereço.value = "peking"; document.forms []. zipcode.value = "";
Você pode ver a concisão e a clareza da afirmação com, mas é difícil encontrar verdadeira perfeição no mundo do código.
O intérprete JS precisa verificar se as variáveis no bloco com o objeto contido no bloco com com o que reduzirão bastante a velocidade de execução da instrução com com a declaração e dificultam as declarações JS a serem otimizadas. Para levar em consideração a velocidade e o volume de código, podemos encontrar uma solução relativamente comprometida:
var form = document.forms []; form.name.value = "Lee King"; form.address.value = "peking"; form.zipcode.value = "";
Portanto, no desenvolvimento futuro eficiente do código, devemos evitar o uso de declarações o máximo possível.
Após o teste:
var a = 123; var b = {a: 321}; com (b) {console.log (a); // 321} var a = 123; var b = {}; Remova a propriedade A em B com (b) {console.log (a); // 123} da cadeia de escopo para analisá -laNo JavaScript, as funções são objetos e, de fato, tudo no JavaScript é objetos. Existe uma propriedade interna dentro da função que é acessível apenas ao mecanismo JavaScript, que é [[escopo]]. Esta propriedade contém uma coleção de objetos no escopo quando a função é criada. Esta coleção é chamada de corrente de escopo.
Por exemplo, o seguinte código:
função add (num1, num2) {var sum = num1 + num2; soma de retorno; }Quando uma função é criada, um objeto global será preenchido em sua cadeia de escopo, que contém todas as variáveis globais, como mostrado na figura abaixo:
Quando a função é executada, um objeto ativo é criado, que contém todas as variáveis locais, denominadas parâmetros e essa função. O objeto é então empurrado para a extremidade frontal da corrente do escopo. Quando a função é executada, o objeto também é destruído.
Pode -se observar que a variável global será empurrada para o final da cadeia de escopo pelo objeto ativo, e é por isso que a velocidade de acesso variável global é lenta!
com
De um modo geral, as cadeias de escopo só serão afetadas por declarações de captura e captura. Ao usar com, a função criará um novo objeto ativo e o empurrará para o front end, que é o objeto com. Isso significa que todas as variáveis locais estão no segundo objeto de cadeia de escopo, e é por isso que você deve evitar usar.
O exposto acima é o entendimento das declarações com JavaScript introduzidas pelo editor. Espero que seja útil para você. Se você quiser saber mais informações, preste atenção ao site wulin.com!