{
alert(x)
}
(function() {
f(1)
}())
Нету ; после первого блока. И интерпретатор рассматривает твой код как: let f = funciton(x) {alert (x)}(function() { f(1)}()) То есть получается IIFE передается как парметр в первую функцию, а f к этому моменту еще не создана. Если после первого блока кода поставишь запятую, проблема пропадет.
у меня iife всегда такая ;(function() { f(1) }()) не помню где прочитал, всегда ; в начале пишу
Обсуждают сегодня