Object.create в JavaScript. Метод Object.create является одним из… | by Rupesh Mishra
Чтение: 3 мин.
·
13 мая 2017 г.
Метод Object.create
— это один из методов создания нового объекта в JavaScript.
Другие способы создания объектов в JavaScript описаны в моей предыдущей статье. Я рекомендую прочитать мои предыдущие статьи о прототипах и наследовании, чтобы извлечь максимальную пользу из этой статьи.
Основной синтаксис:
Object.create(prototype_object, propertiesObject)
Метод Object.create
принимает два аргумента: объект-прототип. Это должен быть объект или null
.
propertiesObject
: Свойства нового объекта. Этот аргумент является необязательным.Создать объект с помощью Object.create без прототипа
Рассмотрим приведенный ниже пример создания нового объекта в JavaScript
Здесь мы создали новый объект
Object.
create
. Поскольку мы прошли null
для прототипа Object
. человек
объект не имеет объекта-прототипа. Кроме того, мы добавили name
в качестве нового свойства объекта person.
Создать объект с прототипом:
Вывод консоли:
В приведенном выше примере мы создали propertiesObject
с функцией fullName
. Мы создали объект человек
с свойствами Object
в качестве прототипа объекта человека , используя
Object.create
. Далее мы добавили свойства firstName
и lastName
в объект person
. Здесь мы добавили firstName
и lastName
свойства после создания объекта. Было бы здорово, если бы мы могли добавить эти свойства при создании объекта.
Для этого мы будем использовать второй аргумент метода Object.create
. Object.create 2-й аргумент — propertiesObject
propertiesObject
используется для создания свойств нового объекта. Он действует как дескриптор для определения новых свойств. Дескрипторы могут быть дескрипторами данных или дескрипторами доступа.
Дескрипторы данных
- Конфигурируемые
- Перечисляемые
- Значение
- Доступные для записи
Дескрипторы доступа
9002 5 get- set
Подробно дескрипторы можно прочитать здесь
Пример:
В приведенном выше примере мы создали новый объект person с объектом-прототипом как PrototypeObject
и свойствами как firstName 9.0010 и фамилия
.
Свойства firstName
и lastName были добавлены с использованием второго параметра Object.