На самом деле это возможно 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));