Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Object.create

Создаёт объект с заданным прототипом.

Доступно с: ES5

Синтаксис

Object.create(proto, properties)

Параметры

ПараметрТипОписание
protoobject | nullОбъект, который станет прототипом нового объекта.
propertiesobjectНеобязательный. Описания свойств, как у Object.defineProperties.

Возвращаемое значение

objectНовый объект с заданным прототипом.

Примеры

Объект наследует методы прототипа:

const animal = {
  speak() {
    return `${this.name} makes a sound`;
  },
};
 
const dog = Object.create(animal);
dog.name = 'Rex';
 
console.log(dog.speak());

Результат:

Rex makes a sound

Объект без прототипа — чистый словарь:

const dict = Object.create(null);
dict.apple = 3;
 
console.log('toString' in dict);
console.log('toString' in {});

Результат:

false
true

Примечания

Прототип — это объект, у которого другой объект «одалживает» свойства и методы, если их нет у него самого. В повседневном коде прототипы создают классы, а Object.create() нужен редко.

См. также

  • Object.getPrototypeOf — Возвращает прототип объекта.
  • class — Объявляет класс — шаблон для создания объектов с общими методами.
  • Object.defineProperty — Создаёт свойство с точными настройками: только для чтения, скрытое, с геттером.

В учебнике

  • Прототипы — Как устроено наследование в JavaScript изнутри: прототип объекта, цепочка прототипов, методы классов в prototype и Object.create.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.