
Метод Object.create() создает новый объект, используя существующий объект в качестве прототипа для создаваемого объекта.
Синтаксис метода Object.create() выглядит следующим образом:
Object.create(proto, [propertiesObject])где proto - объект, который будет использован в качестве прототипа для создаваемого объекта, а propertiesObject - необязательный объект, который определяет дополнительные свойства, которые должны быть добавлены в создаваемый объект.
Вот пример использования метода Object.create():
const person = {
firstName: "John",
lastName: "Doe",
getFullName: function () {
return this.firstName + " " + this.lastName
},
}
const person2 = Object.create(person, {
firstName: {
value: "Jane",
},
lastName: {
value: "Doe",
},
})
console.log(person2.getFullName()) // 'Jane Doe'В этом примере мы создаем объект person, который имеет свойства firstName и lastName и метод getFullName(), который возвращает полное имя. Затем мы используем метод Object.create() для создания нового объекта person2, который использует объект person в качестве прототипа. Мы также добавляем свойства firstName и lastName в объект person2. Затем мы вызываем метод getFullName() для объекта person2 и получаем полное имя объекта person2.
Важно отметить, что свойства, добавленные в propertiesObject, имеют более высокий приоритет, чем свойства, унаследованные от прототипа. Если свойство с тем же именем уже существует в прототипе, то оно будет переопределено значением из propertiesObject.
Также важно отметить, что в отличие от конструкторов и классов, метод Object.create() не создает новую функцию и не выполняет какой-либо код, кроме создания и возвращения нового объекта.