- Теория
- Теория
Перемены снаружи — перемены внутри
Из-за того, что переменные ищутся изнутри наружу, снаружи можно переопределять переменные, которые используются внутри функции.
Представьте, что вы школьник и, наконец-то, настало время обеда. Вы идёте в столовую. Сегодня на обед котлеты. И не с макарошками, а с пюрешкой! Вы обедаете и идёте учиться дальше. Много уроков, продлёнка, и вот уже время ужина. Вы снова идёте в столовую, а там закончились котлеты, поэтому на ужин сельдерей. И вы ужинаете сельдереем, деваться некуда. Воспроизведём этот пример в коде.
var food = 'котлеты с пюрешкой';
var eatDinner = function () {
console.log('Поел ' + food);
};
eatDinner();
// Выведет: Поел котлеты с пюрешкой
// Переопределяем переменную food
food = 'сельдерей';
eatDinner();
// Выведет: Поел сельдерей
Сначала значение глобальной переменной food
было 'котлеты с пюрешкой'
. Мы вызвали функцию и она использовала это значение, потому что оно было актуально на тот момент. Затем значение food
изменилось на 'сельдерей'
. С этого места в коде и ниже, старого значения переменной больше нет. Поэтому, когда мы вызвали функцию после переопределения переменной, функция использовала новое значение.
Хорошо владеете JavaScript, но до сих пор не освоили Node.js? Записывайтесь на профессиональный курс «Node.js. Профессиональная разработка REST API». Цена 12 000 ₽.
- index.html
Вы перешли на другую страницу
Кликните внутри мини-браузера, чтобы поставить фокус в это окно.