Vantagens e desvantagens do encadeamento em JavaScript
Apesar de o encadeamento encurtar o código,
na maioria dos casos, introduzir uma variável
é mais conveniente. Compare os dois exemplos -
agora eu introduzi a variável elem e posso
definir qualquer quantidade de atributos, enquanto
querySelector é chamado apenas
uma vez:
let elem = document.querySelector('#elem');
elem.value = 'www';
elem.type = 'submit';
Agora, como não estou introduzindo uma nova variável,
preciso chamar querySelector
duas vezes:
document.querySelector('#elem').value = 'www';
document.querySelector('#elem').type = 'submit';
Na minha opinião, este código ficou mais complexo, embora
ocupe uma linha a menos. Além
disso, se eu quiser alterar o valor do id
de 'elem' para outro, terei que
fazer isso em vários lugares, o que não é muito conveniente.
Há também outro problema - a carga no navegador.
A busca de elementos na página, feita pelo
método querySelector, é uma operação bastante
lenta (e, de modo geral, qualquer trabalho
com elementos da página é uma operação lenta
- lembre-se disso).
No nosso caso, se usarmos
querySelector cada vez, o navegador
processará o HTML da página e buscará
o elemento com o id especificado várias vezes
(não importa que o id seja o mesmo - o navegador
executará todas as ações várias vezes), realizando
operações desnecessárias que podem retardar
o funcionamento do navegador.
Se usarmos a variável elem
- nenhuma busca na página ocorre
(o elemento já foi encontrado e a referência a ele está
armazenada na variável).
Dado o seguinte código:
<img id="image" src="avatar.png" width="300" height="500">
console.log(document.querySelector('#image').src);
console.log(document.querySelector('#image').width);
console.log(document.querySelector('#image').height);
Indique as desvantagens deste código. Corrija-as.