Как бы вы объяснили следующий фрагмент JavaScript? - PullRequest
0 голосов
/ 30 мая 2019

function d() {
  console.log(j)
}

let e = () => console.log(j);

(function() {
  let j = 3;
  d();
  e();
})();

Будет записано 3 для выполнения обеих функций.

Итак, мы можем предположить, что всякий раз, когда выполняется функция javascript, она пытается разрешить переменную изродительская область, если не в текущей области?

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Оба console.log(j) используют j из области, где это определено, а не из того места, где вызываются функции.

0 голосов
/ 30 мая 2019

Закрытие формируется, когда функция объявляется внутри другой функции, а не когда функция вызывается внутри другой функции.

Или вы можете сказать.

Переменные, доступные для функции, это те, которые объявлены в их родительской функции, где они объявлены, а не там, где они вызываются.

...