В этом примере создается объект, зависает, а затем создается новый объект из замороженного объекта. Если второй объект пытается изменить свойство теста, он не может. Он остается замороженным с помощью первое значение объекта 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
перезаписать его, если ему нужно?
Моя причина для запроса заключается в том, что я хочу создать неизменяемый базовый объект в качестве шаблона со значениями по умолчанию, а затем использовать его для создания новых объектов, которые я могу настроить. Какой лучший подход для этого?
Спасибо!