АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
⊗jsPmClOVA 259 of 505 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Доступ к внешним переменным функций в JavaScript

Давайте рассмотрим следующий код:

let num = 1; // задаем значение переменной function func() { console.log(num); // выводим его в консоль } func(); // вызываем функцию

Как я уже упоминал ранее, значение переменной не обязательно должно быть перед определением функции, главное, чтобы оно стояло перед ее вызовом:

function func() { console.log(num); } let num = 1; func();

На самом деле это не совсем так. Наша функция даже до своего вызова знает значение переменной num:

let num = 1; function func() { console.log(num); // функция уже знает, что num = 1 }

Вот более сложный пример:

let num = 1; // функция в этот момент узнает, что num = 1 function func() { console.log(num); } num = 2; // функция в этот момент узнает, что num = 2

Добавим вызовы функции:

let num = 1; // функция в этот момент узнает, что num = 1 func(); // выведет 1 function func() { console.log(num); } func(); // выведет 1 num = 2; // функция в этот момент узнает, что num = 2 func(); // выведет 2

Еще раз: на самом деле функция знает значения внешних переменных, даже не будучи вызванной.

byenru