Что выведет код Senior Современный синтаксис обновлено

Proxy

Вопрос

Что выведет код? По строке на каждый вывод.

const target = { a: 1 };
const proxy = new Proxy(target, {
  get(obj, key) { return key in obj ? obj[key] : 'нет ключа'; },
});
console.log(proxy.a);
console.log(proxy.b);
target.c = 3;
console.log(proxy.c);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 1, нет ключа, 3. Почему так Прокси оборачивает цель и перехватывает чтение, запись, удаление.

Что выведет

1
нет ключа
3

Разбор

Почему так

Прокси оборачивает цель и перехватывает чтение, запись, удаление. На нём построена реактивность Vue 3 и MobX. Важно: прокси не копирует объект - изменения цели видны через прокси.

Вывод

1
нет ключа
3

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме