Вопрос Ссылка на заголовок
Почему в реализации статического модуля Вы используете 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 более удобен моему глазу и мозгу. На данный момент я работаю один, стиль кодирования предпочитаю такой какой удобен мне, даже в виду того что код выкладываю на публику. Когда я буду(надеюсь) работать в команде/фирме где другие стандарты стиля - я преспокойненько поменяю стиль, ибо самое главное - понимать что ты пишешь, зачем ты это делаешь и техническое качество. А уж как это выглядит(стиль) - это вторично, если не тритично/пятерично и т.д.
Послесловие Ссылка на заголовок
Я не был бы собою не пожелав всем любви и обнимашек!