Что выведет код 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 ошибок.