Показать сообщение отдельно
  #5 (permalink)  
Старый 17.02.2023, 11:49
Новичок на форуме
Отправить личное сообщение для SanGorych Посмотреть профиль Найти все сообщения от SanGorych
 
Регистрация: 13.06.2021
Сообщений: 2

Функция ВСЕГДА вызывается со скобками, а в вашем примере запись
let message = "Hello!";
let res = (() => message)();

равнозначна
let message = "Hello!";
let res = message;

Так что получается, "res" - это не функция а еще одна строка.
И при изменении "message", она естественно остается прежней.
Но если для вас не принципиально использование функции, то вы можете заменить её на свойство:
let message = "Hello!";
Object.defineProperty(this, 'res', {
    get() {
        //Здесь, если нужна, какая то логика
        return message;
    }
});
console.log(res);
message = "world!";
console.log(res);

Последний раз редактировалось SanGorych, 17.02.2023 в 11:58.
Ответить с цитированием