Доброе время суток.
Допустим, существует такой код
//// обычное "изменение" свойства потомком ////
base = {f1: 1};
scion = Object.create(base);
scion.f1 = 11; // создали собственное свойство f1 в потомке
console.log(scion.f1);
// вывод 11
//// тоже самое через Object.defineProperty ////
parent = {};
Object.defineProperty(parent, 'f1', {value: 2});
child = Object.create(parent);
child.f1 = 22; // попробовали создать собственное свойство f1 в потомке
console.log(child.f1);
// тем не менее вывод 2.
// Получается, что создать теперь свой набор ключ (с тем же именем)/значение
// в child, можно тольлко используя тоже Object.defineProperty
Object.defineProperty(child, 'f1', {value: 22});
console.log(child.f1);
// вот теперь вывод 22
Подскажите, пожалуйста, где можно почитать о таком поведении. На
Object.defineProperty() и
Object.defineProperty ( O, P, Attributes ) ничего явно описывающего такое поведение не нашёл.