この例では、オブジェクトを作成して凍結し、凍結したオブジェクトから新しいオブジェクトを作成します。2 番目のオブジェクトがテスト プロパティを変更しようとしても、できません。最初のオブジェクトの値 10 で固定されたままになります。
//Create an object and freeze it
var first = {
test: 10
};
Object.freeze(first);
//Create a second object from the first one and
//try and change the new test property (you can't)
var second = Object.create(first);
second.test = 20;
console.log(second.test); //10
ここに私の質問があります:
新しいオブジェクトの新しいプロパティですかsecond.test
、それとも固定された最初のオブジェクトのプロパティへの単なる参照ですか?
凍結first.test
された値をデフォルト値として使用することは可能ですが、second.test
必要に応じて上書きすることはできますか?
質問する理由は、不変の基本オブジェクトをデフォルト値を持つテンプレートとして作成し、それを使用してカスタマイズ可能な新しいオブジェクトを作成したいからです。これに対する最善のアプローチは何ですか?
ありがとう!