Kintamųjų konfliktai JavaScript
Tarkime, kad turime HTML puslapį index.html,
kuriame script žyme jūs sukurate
kintamąjį str ir jį atspausdinate:
<html>
<head>
<script>
let str = 'script text';
alert(str); // išves 'script text'
</script>
</head>
<body>
...
</body>
</html>
Tarkime, kad taip pat turime failą script.js,
kuriame taip pat aprašomas kintamasis str:
let str = 'file text';
Tarkime, kad dabar mūsų failas script.js yra prijungtas
prie puslapio index.html taip:
<html>
<head>
<script>
let str = 'script text';
</script>
<script src="script.js"></script>
<script>
alert(str);
</script>
</head>
<body>
...
</body>
</html>
Kadangi kintamasis str yra ir faile
index.html, ir faile script.js,
įvyks konfliktas, kuriame laimės tas kintamasis,
kuris aprašytas žemiau, tai yra kintamasis
iš failo script.js. Tai yra, mūsų kodas
išves 'file text', o ne 'script
text', kaip mes tikimės.
Problema iš tikrųjų yra labai rimta. Realiame tinklapyje dažniausiai turėsite kelis failus su savo scenarijais, be to, jūs prijungsite keletą trečiųjų šalių plėtinių. Tokiu atveju vieno failo kintamieji ir funkcijos gali konfliktuoti su kito failo kintamaisiais ir funkcijomis.