Предности и недостатоци на ланеци во JavaScript
Иако ланеците го скратуваат кодот,
во повеќето случаи воведувањето на променлива
сепак е попогодно. Споредете ги двата примери -
сега воведов променлива elem и можам
да запишам било кој број на атрибути, при
тоа querySelector се повикува само
еднаш:
let elem = document.querySelector('#elem');
elem.value = 'www';
elem.type = 'submit';
Сега не воведувам нова променлива и затоа
морам да го повикам querySelector
два пати:
document.querySelector('#elem').value = 'www';
document.querySelector('#elem').type = 'submit';
Според мене, овој код стана посложен, иако
зазема еден ред помалку. Освен
тоа, ако сакам да ја сменам вредноста id
од 'elem' на некоја друга, ќе морам
тоа да го направам на многу места, што не е
многу погодно.
Има и уште еден проблем - оптоварување на прелистувачот.
Пребарувањето на елементи по страницата, кое го прави
методот querySelector, е прилично
бавна операција (и воопшто секоја работа
со елементи на страницата - е бавна операција
- запомнете го ова).
Во нашиот случај, ако користиме
querySelector секој пат,
тогаш прелистувачот секој пат
ќе го обработува HTML-от на страницата и ќе бара
елемент со дадениот id неколку пати
(не е важно што id се исти - прелистувачот
ќе ги изврши сите дејства неколку пати), вршејќи
бескорисни операции, кои можат да ја забават
работата на прелистувачот.
Ако пак користиме променлива elem
- не се случува никакво пребарување по страницата
(елементот е веќе пронајден и референцата до него лежи
во променливата).
Даден е следниот код:
<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);
Наведете ги недостатоците на овој код. Исправете ги.