Показать сообщение отдельно
  #1 (permalink)  
Старый 16.05.2020, 09:35
Новичок на форуме
Отправить личное сообщение для AndVGri Посмотреть профиль Найти все сообщения от AndVGri
 
Регистрация: 02.04.2017
Сообщений: 3

Изменение свойства потомка и Object.defineProperty
Доброе время суток.
Допустим, существует такой код
//// обычное "изменение" свойства потомком ////
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 ) ничего явно описывающего такое поведение не нашёл.
Ответить с цитированием