Показать сообщение отдельно
  #3 (permalink)  
Старый 02.09.2021, 16:01
Аватар для lgick
Аспирант
Отправить личное сообщение для lgick Посмотреть профиль Найти все сообщения от lgick
 
Регистрация: 23.11.2013
Сообщений: 96

странно почему так происходит, ведь блок кода в {} должен быть изолирован. Поэтому появились const и let и устарел var

Также в учебнике конструкция IIFE :

(function () {
...
}())


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

let a = 1
function x() {
   return 1
}

{
  let a = 2
  function x() {
      return 2
  }
}

alert(a) // по прежнему 1
alert(x()) // неожиданно 2



выходит для инкапсуляции без IIFE не обойтись?

Последний раз редактировалось lgick, 02.09.2021 в 16:04.
Ответить с цитированием