Сначала консоль выведет cat, затем undefined. Функция a сохраняет доступ к index через замыкание, но ничего явно не возвращает.
Определите, что будет выведено в консоль (пример 6)
Сначала консоль выведет cat, затем undefined. Функция a сохраняет доступ к index через замыкание, но ничего явно не возвращает.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Нужно понять, какое значение переменной index окажется в выводе консоли.
function get() {
const index = 'cat';
return {
fn1: () => { console.log(index) },
fn2: () => { console.log('Hello_2') }
}
}
const { fn1: a, fn2: b } = get();
console.log(a());
Ответ
Сначала консоль выведет cat, затем undefined. Функция a сохраняет доступ к index через замыкание, но ничего явно не возвращает.
Деструктуризация только переименовала fn1 в a и fn2 в b. При вычислении аргумента внешнего console.log вызывается a(), которая печатает cat; её результат undefined затем печатает внешний вызов. Fn2 здесь не выполняется.