function scope sample 3 - garevna/js-course GitHub Wiki
:arrow_backward: scope
:coffee: 3
var __num = 1
function changeNum () {
__num = 10
}
changeNum ()
переменная __num объявлена в глобальной области видимости, в которой также объявлена функция changeNum
При объявлении переменной __num присвоено значение 1
Поскольку внутри функции changeNum нет объявления переменной __num, то при формировании контекста выполнения функции changeNum эта переменная не попадает в объект активации ( "шкафчик для личных вещей" ) функции changeNum
Тогда при выполнении присваивания
__num = 10
происходит следующее:
функция changeNum, не найдя такой переменной в собственном "шкафчике", обращается к внешнему "шкафчику", где такая переменная есть, ей-то и будет присвоено значение 10
Таким образом, для каждого контекста выполнения существует своя цепочка областей видимости
Цепочка областей видимости включает области видимости всех предыдущих контекстов в стеке
:arrow_backward: scope