Метод 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()
не создает новую функцию и не выполняет какой-либо код, кроме создания и возвращения нового объекта.