JS: Как сделать переменные локальными?

Пусть есть два файла:
Основной (main.html):
<!DOCTYPE html>
<html lang="en">
    <head>
    </head>
    <body>
        <script type="text/javascript" src="second.js"></script>
        ...
        <script type="text/javascript">
            alert( variable1 );
            alert( variable2 );
        </script>
    </body>
</html>


Дополнительный (second.js):
var variable1 = "напишет";
let variable2 = "тоже напишет";


Тогда обе переменные будут видны в обоих частях кода, в том числе попадут в alert.

Существует ли способ сделать так, чтобы переменная была видна только в той части js, где она была объявлена, или в том файле, где она была объявлена? Возможно, с использованием хаков, других странных, но работающих комбинаций.

Потому что если таких переменных не две, а 50, то единственное решение, которое приходит на ум, это добавление префиксов для каждой переменной, что вероятно является достаточно плохими решением данное проблемы.

Есть ли элегантные (нет) решения?
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
v3shin
@v3shin
Веб-шаман
Используйте замыкания:
(function (){
    var variable1 = "напишет";
    let variable2 = "тоже напишет";
})();
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Robur
@Robur
Знаю больше чем это необходимо
Есть ли элегантные (нет) решения?


"Новый" (которому уже не один год) синтаксис модулей.
В модуле все переменные автоматически становятся локальными.
Ответ написан
HistoryART
@HistoryART
^Спасибо - отметить ответом
Создайте файл с переменными и импортите их по необходимости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы