Глобальный контекст (window
в браузере) - это значение, которое this
получает, когда нет другого значения для использования.
Ваши локальные переменные являются локальными (то есть не свойствами window
). Они объявлены внутри функции с var
.
Причина, по которой добавление var h = (function(){...
не имеет значения, заключается в том, как вы вызываете функцию. Ссылка на функцию не является значением свойства объекта (например, something.func()
), и вы не вызываете его с помощью .call()
или .apply()
, поэтому это относится к глобальному (window
) объекту. Это просто способ определения языка.