JavaScript: Jak stworzyć stały obiekt?

Opublikowano: 19.02.2022 - tagi: JavaScript Obiekt

Stworzenie stałej w JavaScript jest bardzo proste:

const value = 7;

Skoro jest to stała, nie można zmienić jej wartości:

const value = 7;

value = 'test';
// Uncaught TypeError: invalid assignment to const 'value' w FireFox

A co z obiektami?

Stałe obiekty

const obj = {
  name: 'Product X',
  value: 1200
}

W takim przypadku możemy zmienić właściwości obiektu, ale nie możemy ustawić nowej wartości obj:

const obj = {
  name: 'Product X',
  value: 1200
};

obj.name = 'Product Y'; // Ok
obj.value = 700; // Ok

obj = { age: 20 }; // Błąd!

Jak można stworzyć stały obiekt, którego nie da się zmienić?

Object.freeze

W klasie Object istnieje metoda freeze, która sprawia, że obiekt stanie się stały:

const obj = {
  name: 'Product X',
  value: 1200
};

Object.freeze(obj);

obj.name = 'Product Y';
delete obj.value;
obj.age = 20;

console.log(obj); // { name: 'Product X', value: 20 }

Do obiektu nie można nic dodać, usunąć lub zmienić wartości jednego z istniejących właściwości.