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