Где можно увидеть дескрипторы, присвоенные в прототип с помощью Object.create?

Читаю учебник learn.js:
Мы также можем использовать Object.create для «продвинутого» клонирования объекта, более мощного, чем копирование свойств в цикле for..in:

// клон obj c тем же прототипом (с поверхностным копированием свойств)
let clone = Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));


Такой вызов создаёт точную копию объекта obj, включая все свойства: перечисляемые и неперечисляемые, геттеры/сеттеры для свойств – и всё это с правильным свойством [[Prototype]].


Не совсем понимаю что в этом примере происходит с дескрипторами? Как они попадают в прототип объекта clone(в консоли, например, они не отображаются, отображается только объект objв качестве прототипа)?



60eb170c8078c111201760.png

Где можно увидеть дескрипторы, которые вроде как должны находится в прототипе объекта clone?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Очевидно что дескрипторы прототипа никто не трогает, просто новому объекту назначается тот же прототип, что и у старого.

Если вы хотите сказать "но это же тогда не полная копия", то какбэ да, свойства-объекты тоже не клонируются же, а передаются по ссылке, как и прототип.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы