Встречается на собеседованиях • сегодня
Как сделать поля в объекте неизменяемыми
В JavaScript можно использовать Object.freeze() для создания неизменяемого объекта. Это предотвращает добавление, удаление и изменение свойств. Однако это поверхностное замораживание - вложенные объекты останутся изменяемыми.
Для глубокого замораживания нужна рекурсивная функция:
javascript
const deepFreeze = (obj) => {
Object.freeze(obj);
Object.keys(obj).forEach(key => {
if (typeof obj[key] === 'object' && !Object.isFrozen(obj[key])) {
deepFreeze(obj[key]);
}
});
return obj;
};
const user = deepFreeze({
name: 'John',
address: { city: 'New York' }
});
user.name = 'Pete'; // Не сработает
user.address.city = 'Boston'; // Тоже не сработаетАльтернативно можно использовать Object.defineProperty() с writable: false для отдельных свойств. В TypeScript можно использовать модификатор readonly.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы