stig85
@stig85
Я нормальный парень, но порою едет крыша

Замена IIFE ???

Постараюсь упростить свою задачу и кратко описать суть проблемы.
Есть переменная (функция), которая должна возвращать значение другой внешней переменной. Обращаться надо как к простой переменной, т.е. без скобок (собственно в этом и затык).
Если без скобок, то это что-то вроде IIFE и получается так:
let message = "Hello!";

let res = (() => message)();

console.log(res);


И вроде все как надо, но только при изменении внешней переменной мне надо получать это новое значение, а тут остается старое, потому как IIFE так и работает.
let message = "Hello!";

let res = (() => message)();

console.log(res);

message = "world!";

console.log(res);


Может быть есть изврат, чтобы реализовать такую задачу?
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Статья по теме: https://learn.javascript.ru/property-descriptors
var globalVar = "Hello!";

Object.defineProperty(window, 'test', {
    get() { return globalVar } // ну и другие необходимые дескрипторы, опущены для примера.
});

console.log(test); // "Hello!"
globalVar = "world!";
console.log(test); // "world!"

P.s. но звучит так, будто Вы какую-то дичь делаете и нужно переосмыслить решение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы