Логичность шаблона «объявили и вызвали» в JS
Вчера в комменариях возникло обсуждение семантики синтаксиса «!function () {}()». Мне так кажется, что семантика здесь побоку, использовать функцию для создания зоны видимости — уже костыль (в JS 1.7 есть конструкция «let» для этого), но мне тут подумалось, что ведь можно сделать эту конструкцию семантичной, если использовать забытую конструкцию «with»:
with (function () {
// тело функции
}) call();На мой взгляд, весьма и весьма семантично. Что скажете?
Комментарии 5
David Flanagan — Javascript The Definitive Guide 6th Ed.