【JavaScript入門】finallyなオブジェクトを定義する

JavaScriptでfinally(不変)なオブジェクトの定義方法についてまとめました。

finally(不変)なオブジェクトとは

オブジェクトのプロパティの追加や削除、またプロパティの値の変更が出来ない(エラーになる)オブジェクトのことです。

オブジェクトのプロパティを動的に追加・削除できることは柔軟性があって良い面もありますが、勝手にプロパティを追加・削除されたくない時もあります。

そんな時は、不変オブジェクトにすることにより予想外の変更を防止することが出来ます。

3種類の不変オブジェクト

不変オブジェクトの定義には、preventExtensions、seal、freeze のメソッドが使用できます。

それぞれのメソッドで、プロパティの追加・削除・変更の制限が異なります。

preventExtensions(追:× 削:○ 変:○)

プロパティの追加のみ不可になります。

ん〜しっくりくる使い方が思い浮かびません。

seal(追:× 削:× 変:○)

プロパティ値の変更のみ可能になります。

オブジェクトのプロパティは固定で、値のみ変更できるので、”クラスのインスタンス生成後にプロパティの追加・削除をさせない” というような使い道があります。

freeze(追:× 削:× 変:×)

指定したオブジェクトのプロパティ操作を全て不可にします。

オブジェクトを定数として扱いたい場合などに使用できます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする