Не стоит ругаться и обвинять друг друга в некомпетентности ;-) не знать чего-либо совершенно нормально, даже если ты лет двадцать без устали кодишь. Настоящего профессионала отличает не то, что он знает вообще все, а то, что он прекрасно осознает, что много чего не знает, и его это нисколько не смущает - мы учимся постоянно. Для меня, например, некоторые моменты связанные с closures оказались новыми, и я решил, что надо поглубже погрузиться в данный вопрос.
А он не так прост, как может показаться на первый взгляд, и содержит в себе целый ряд нюансов, поэтому чрезвычайно важно 1) оперировать одинаково понимаемыми терминами, 2) пойти в документацию, а именно в ecmascript, и, как правильно заметил
dollar , проверить, как это было реализовано уже в реальной реализации javascript, в движке, например V8.
Вопрос, хоть и теоретический, но очень важный, потому что проливает свет на понимание работы современных языков "изнутри", что безусловно важно хорошему программисту.
Предлагаю всем, кого вопрос также заинтересовал, немного погрузиться в теорию, для начала вот это:
https://262.ecma-international.org/12.0/#sec-abstr...
более развернуто в статье, хоть и старой, но принцип closure не поменялся
dmitrysoshnikov.com/ecmascript/chapter-6-closures
Оно же на русском:
dmitrysoshnikov.com/ecmascript/ru-chapter-6-closures