プロパティを変更できないオブジェクトの読み取り専用/不変バージョンを JavaScript で作成するにはどうすればよいですか? これは、サブオブジェクトなどのプロパティにも適用する必要があります。
これを行うために遭遇したすべてのメソッド ( Object.defineProperty
、Object.freeze
など) は、オブジェクトの最上位のプロパティに対してのみ機能し、サブオブジェクトに対しては機能しません。
(考えられるユースケース:特定のモジュールでsettings
またはconfiguration
型オブジェクトを作成/変更した後、不変形式でプログラムの残りのモジュールに公開する必要があります。)