Я пытался закрепить свое понимание закрытия/обзорный в JavaScript с помощью следующего кода теста:Как моя внутренняя внутренняя функция имеет доступ к внешним переменным глобального масштаба? Разве это не нарушение сферы действия/закрытия?
var globalM = 1;
function firstFx() {
function secondFx() {
console.log(globalM + 1);
}
secondFx();
}
firstFx();
Я знаю firstFx будет иметь доступ к globalM потому, что в это сфера. Но как моя внутренняя функция secondFx также имеет доступ к переменной globalM? Он достигает двух уровней, я думал, что это невозможно. Однако результат 2 поступает на консоль.
Потому что его глобальный. Это означает, что все функции/области доступа имеют к нему доступ. – Manu
Нет ничего плохого в достижении 2 уровней. –
Спасибо, ребята, так много читали о закрытии/лексике, что я просто полностью смутил себя основами. –