Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Object.freeze

Запрещает любые изменения объекта.

Доступно с: ES5

Синтаксис

Object.freeze(obj)

Параметры

ПараметрТипОписание
objobjectОбъект, который нужно заморозить.

Возвращаемое значение

objectТот же объект, уже замороженный.

Примеры

Изменения молча игнорируются:

const config = Object.freeze({ port: 3000 });
 
config.port = 8080;
config.host = 'localhost';
 
console.log(config);

Результат:

{
  "port": 3000
}

В строгом режиме (в модулях и классах) изменение вызывает ошибку:

'use strict';
const config = Object.freeze({ port: 3000 });
 
try {
  config.port = 8080;
} catch (error) {
  console.log(error.name);
}

Результат:

TypeError

Примечания

Заморозка поверхностная: вложенные объекты можно менять, если не заморозить и их.

const и Object.freeze() — разные вещи: const запрещает присвоить переменной другой объект, а freeze запрещает менять сам объект.

См. также

  • Object.isFrozen — Проверяет, заморожен ли объект.
  • Object.seal — Запрещает добавлять и удалять свойства, но разрешает менять существующие.
  • const — Объявляет переменную, которой нельзя присвоить новое значение.

Вопросы и ответы по теме

В учебнике

  • Неизменяемость данных — Изменяемые и неизменяемые данные в JavaScript: ссылки на объекты, копирование через spread, методы toSorted и with, Object.freeze и structuredClone.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.