Quanto mais profunda a localização de um identificador em JavaScript, mais lenta ele lê e escreve. Portanto, ler e escrever variáveis locais em uma função são sempre as mais rápidas, enquanto a leitura e a escrita de variáveis globais geralmente são as mais lentas. Uma boa regra geral é: se um valor de escopo cruzado for referenciado mais de uma vez em uma função, guarde-o em uma variável local.
Por exemplo:
A cópia do código é a seguinte:
<!-antes da otimização->
<script type = "text/javascript">
função initui () {
var bd = document.body,
links = document.getElementByTagName ("A"),
i = 0,
len = links.length;
enquanto (i <len) {
atualização (links [i ++]);
}
document.getElementById ("Go-btn"). OnClick = function () {
começar();
}
bd.className = "ativo";
}
</script>
Esta função refere -se a um documento três vezes e o documento é um objeto global. O processo de busca dessa variável deve atravessar todo o link do escopo até que seja finalmente encontrado no objeto Global Variable. Você pode reduzir o impacto do desempenho armazenando a referência à variável global em uma variável local e usando essa variável local em vez da variável global.
Por exemplo:
A cópia do código é a seguinte:
<!-Após a otimização->
<script type = "text/javascript">
função initui () {
var doc = document,
bd = doc.body,
links = doc.getElementByTagName ("A"),
i = 0,
len = links.length;
enquanto (i <len) {
atualização (links [i ++]);
}
doc.getElementById ("Go-btn"). OnClick = function () {
começar();
}
bd.className = "ativo";
}
</script>