Встречается на собеседованиях • сегодня

Как сделать объект иммутабельным в JS

В JavaScript можно сделать объект иммутабельным несколькими способами:

  1. Object.freeze() - запрещает добавление/удаление/изменение свойств:
js
const obj = { a: 1 };
Object.freeze(obj);
obj.a = 2; // Не сработает в strict mode
  1. Использование const + замораживание:
js
const obj = Object.freeze({ a: 1 });
  1. Для вложенных объектов нужно рекурсивно замораживать:
js
function deepFreeze(obj) {
  Object.freeze(obj);
  Object.keys(obj).forEach(key => {
    if (typeof obj[key] === 'object') deepFreeze(obj[key]);
  });
}
  1. Альтернатива - создание иммутабельных копий через spread или Object.assign:
js
const newObj = {...oldObj, a: 2}; // Без изменения оригинала

Важно: Object.freeze работает только на первом уровне, для глубокой иммутабельности нужна рекурсия или библиотеки типа Immutable.js.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы