Как я могу создать неизменяемую/неизменяемую версию объекта в JavaScript, свойства которого не могут быть изменены? Это также должно относиться к свойствам любых под-объектов и т.д.
Все методы, с которыми мне приходилось сталкиваться (Object.defineProperty
, Object.freeze
и т.д.) работают только для свойств верхнего уровня объекта, но не для под-объектов.
(Возможный прецедент: после создания/модификации объекта типа settings
или configuration
в определенном модуле, вам нужно подвергнуть его остальным программным модулям в неизменяемой форме.)