JS内のオブジェクトの既存のプロパティを変更して割り当て後に不変にする方法があるのだろうかと思います。JSオブジェクトの既存のプロパティの書き込み可能性/可読性を変更する
基本的にはオブジェクトがありますが、オブジェクトの既存のプロパティをフリーズしたいが、新しいプロパティを追加できるようにしたい。
は、既存のプロパティを凍結することが可能であり、または私はそうのようObject.defineProperty使用する必要があります:
私はそれが事実の後にプロパティのアクセス許可を変更することが可能です疑うが、私はかしら使用する秘密の秘訣があります。
私は、新しいプロパティを後で追加できるようにしたいので、Object.freezeが過剰になると思います。
あなたが見ることができるように、あなたがオブジェクトの後にプロパティを追加することはできません表示されますが、「凍結」
var z = Object.freeze({
a: 'c'
});
z.b = 'm';
console.log(z);
あり、このための動機は、私は、ライブラリを書いていますということで、ライブラリを使用している開発者がライブラリに属している既存のプロパティを上書きする場合は、/をスローします(エラーをスローします)。
このトピックでは、wthはObject.freezeとObject.sealの違いですか?
https://msdn.microsoft.com/en-us/library/ff806192(v=vs.94).aspx
できるだけ早く私はObject.seal見たように、私はオハイオ州のようでした!これは私が探しているものでなければなりません、そうではありません、Object.freeze、lameと同じように見えます。
あなたは見てなかったhttps://facebook.github.io/immutable -js /? –
はい、不変はおそらく動作しますが、不変のオブジェクトを最初に作成し、その事実の後にプロパティを変更しないといけません。 Immutableの問題は、プロトタイプ継承を行い、プロトタイプをフリーズする必要があることです。 –