Це насправді можливо зробити за допомогою Object.create. Це не буде працювати для "не визначених" властивостей. Але для тих, яким надано значення за замовчуванням.
var defaults = {
a: 'test1',
b: 'test2'
};
Потім, коли ви створюєте об’єкт властивостей, ви це робите Object.create
properties = Object.create(defaults);
Тепер у вас буде два об’єкти, де перший об’єкт порожній, але прототип вказує на defaultsоб’єкт. Перевіряти:
console.log('Unchanged', properties);
properties.a = 'updated';
console.log('Updated', properties);
console.log('Defaults', Object.getPrototypeOf(properties));