В объектах JavaScript ключевое слово const используется для того, чтобы сделать объект константой. Константа означает, что значения внутри объекта не должны обновляться, добавляться или удаляться. Но константы, которые мы создаем с помощью ключевого слова const, на самом деле не являются константами. Возьмем пример

константа

Здесь myDetailsobejct — это обычный объект const. Если мы попытаемся обновить, добавить новое свойство или удалить какое-либо существующее свойство этого объекта, мы увидим, что это возможно. Так что это не фактическая константа.

Есть несколько методов, которые мы можем использовать, чтобы сделать объект реальной константой. Давайте посмотрим один за другим.

Объект.печать

Это метод, который мы можем использовать, чтобы запечатать объект. Метод уплотнения делает объект более устойчивым к изменениям. Object.seal(myDetails) не позволяет объекту удалить свое свойство или добавить новое свойство.

Таким образом, с помощью метода уплотнения добавление нового свойства или удаление существующего свойства больше невозможно. Но все же возможно обновление существующего свойства.

Object.freeze

Этот метод используется для замораживания объекта. Это наиболее подходящий способ сделать объект настоящей константой. Метод замораживания не позволяет добавлять новое свойство, удалять свойство или даже обновлять существующее свойство.

Итак, с помощью Object.freeze(myDetails) мы можем создать настоящую константу. Теперь он не может добавлять, удалять или обновлять свойства объекта.

Заключение

Ключевое слово const не создает реальных констант для объектов. Метод seal и метод freeze используются для достижения этого в константах объекта js. Метод Seal не позволяет добавлять или удалять, но позволяет обновлять. Заморозитьметод, запрещающий добавление, удаление или обновление. Таким образом, метод замораживания создает настоящую константу.

  • * Специальное примечание: эти методы запечатывания и заморозки будут работать только на первом уровне объекта. Если вам нужно перейти на следующий уровень, вам нужно сделать печать следующего уровня или заморозить. Пример: Object.freeze(myObj.child)

Связаться

Linkedin -> https://www.linkedin.com/in/tharaka-udayanga-61a424166/