Вопрос Ссылка на заголовок

Почему в реализации статического модуля Вы используете IIFE вместо static {}

Ответ Ссылка на заголовок

Первым делом - это привычка писать модули-замыкания ещё со времён динозавров, что касается static {} - он вошёл в станарт ES13(2022г.), следовательно IIFE выигрывает в плане поддержки везде испокон веков, это не повод использовать его везде и игнорировать static {}, однако - это повод не внедрять его повсеместно. Я не отрицаю что сейчас идёт битва за “чистоту” кода, однако, давайте разберём данный момент подробней(писать буду сразу лаконично):

// static {}
class A {
    static #config = {
        greeting: null,
        hello: 'Hello',
        target: 'World',
    };
    static {
        let c = this.#config;
        c.greeting = `${c.hello} ${c.target}!!!`;
        console.log(this.#config);
    }
};

Отлично, всё работает, поле инициализируется и собирается. А если таких блоков будет 2 или 5(10-15-20)? Чем больше полей, тем сложнее ориентироваться потому что код становится плоским. Давайте рассмотрим вариант с IIFE:

class A {
    static #config = (() => {
        let c = {
            greeting: null,
            hello: 'Hello',
            target: 'World',
        }
        c.greeting = `${c.hello} ${c.target}!!!`;
        return c;
    })();
    static {
        console.log(this.#config);
    }
};

Я не исключаю что я - не от Мира сего, но, во всяком случае для меня, такой вид конструкции инициализации конкретного поля более понятен: сам объект который инициализируется вложен глубже чем логика его инициализации, и как ни крути в глаза бросается:

  • глубина вложения
  • одно поле - один блок кода

Вывод Ссылка на заголовок

Стиль кодирования может быть разным, лично мне - не принципиально, но вариант с IIFE более удобен моему глазу и мозгу. На данный момент я работаю один, стиль кодирования предпочитаю такой какой удобен мне, даже в виду того что код выкладываю на публику. Когда я буду(надеюсь) работать в команде/фирме где другие стандарты стиля - я преспокойненько поменяю стиль, ибо самое главное - понимать что ты пишешь, зачем ты это делаешь и техническое качество. А уж как это выглядит(стиль) - это вторично, если не тритично/пятерично и т.д.

Послесловие Ссылка на заголовок

Я не был бы собою не пожелав всем любви и обнимашек!