Конфликтҳои тағирёбандаҳо дар JavaScript
Бигзор мо саҳифаи HTML index.html дошта бошем,
ки дар теги script шумо тағирёбандаи
str эҷод мекунед ва онро ба экран мебароред:
<html>
<head>
<script>
let str = 'script text';
alert(str); // 'script text'-ро мебарорад
</script>
</head>
<body>
...
</body>
</html>
Бигзор инчунин файли script.js дошта бошем,
ки дар он инчунин тағирёбандаи str таъин шудааст:
let str = 'file text';
Бигзор акнун файли мо script.js ба саҳифаи
index.html ба таври зерин пайваст шавад:
<html>
<head>
<script>
let str = 'script text';
</script>
<script src="script.js"></script>
<script>
alert(str);
</script>
</head>
<body>
...
</body>
</html>
Аз он ҷое ки тағирёбандаи str ҳам дар файли
index.html мавҷуд аст, ҳам дар файли script.js,
конфликт ба миён меояд, ки дар он тағирёбандае пирӯз мешавад,
ки дар поён навишта шудааст, яъне тағирёбанда
аз файли script.js. Яъне рамзи мо
'file text'-ро мебарорад, на 'script
text', ки мо интизорӣ дорем.
Мушкилии дар асл хеле ҷиддӣ. Дар сайти воқеӣ шумо аксар вақт якчанд файл бо скриптҳои худ хоҳед дошт, ба ғайр аз ин, шумо баъзе плагинҳои ҷонибиро пайваст мекунед. Дар ин ҳолат тағирёбандаҳо ва функсияҳои як файл бо тағирёбандаҳо ва функсияҳои файли дигар конфликт карда метавонанд.