Замена 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); Может быть есть изврат, чтобы реализовать такую задачу? Заранее спасибо откликнувшимся  | 
	
		
 Зачем вам IIFE (Immediately Invoked Function Expression)? 
	В вашем примере вам даже функция не нужна, достаточно прямого обращения к переменной.  | 
	
		
 Цитата: 
	
 Это я для упрощения обозначил, что просто обращение к одной внешней переменной, а так-то мне вообще надо этой функцией определенным образом обрабатывать внешние переменные и давать результат. Если изменились переменные, то и другой результат. А обращаться к функции просто по имени без скобок (и не спрашивайте почему). Вот тут дали наводку https://qna.habr.com/q/1253484  | 
	
		
 Цитата: 
	
 Рефов в js пока не завезли, геттер на глобальный объект - только с глобальными переменными и сработает.  | 
	
		
 Функция ВСЕГДА вызывается со скобками, а в вашем примере запись 
	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);
 | 
| Часовой пояс GMT +3, время: 03:31. |