JavaScriptでオブジェクトの定数を使う場合はObject.freezeでより安全に
JavaScriptで定数を定義するときに、オブジェクトにするとまとまりを表現できます。
例えば、状態を表す定数がいくつかある場合に、STATUSというオブジェクトを定義するケースは以下です。
const STATUS = {
START: 1,
END: 2,
CANCEL: 3
};
しかし、JavaScriptでは、例えばconstで宣言したとしても、オブジェクトのプロパティは上書きできてしまいます。
console.log(STATUS.START); //1
STATUS.START = 999; //誰かが間違って上書きした
console.log(STATUS.START); //999
このような間違いを防止するために、Object.freezeは役に立ちます。
const STATUS = Object.freeze({
START: 1,
END: 2,
CANCEL: 3
});
console.log(STATUS.START); //1
STATUS.START = 999;
console.log(STATUS.START); //freezeしてあるので1のまま
最近のコメント