Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение свойства потомка и Object.defineProperty (https://javascript.ru/forum/misc/80270-izmenenie-svojjstva-potomka-i-object-defineproperty.html)

AndVGri 16.05.2020 09:35

Изменение свойства потомка и 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 ) ничего явно описывающего такое поведение не нашёл.

рони 16.05.2020 09:49

AndVGri,
{value: 2, writable: true }

AndVGri 17.05.2020 13:09

рони, большое спасибо!
Но, всё же не хотелось бы менять доступ к f1 для parent. И всё же больше интересует вопрос - где это задокументировано?

laimas 17.05.2020 15:16

Цитата:

Сообщение от AndVGri
где это задокументировано?

https://developer.mozilla.org/ru/doc...defineProperty


Часовой пояс GMT +3, время: 20:53.