Object.create()

Метод Object.create() создаёт новый объект с указанным прототипом и свойствами.

Object.create(proto[, propertiesObject])

proto Объект, который станет прототипом вновь созданного объекта.

propertiesObject Необязательный параметр. Если указан и не равен undefined, должен быть объектом, чьи собственные перечисляемые свойства (то есть такие, которые определены на самом объекте, а не унаследованы по цепочке прототипов) указывают дескрипторы свойств, добавляемых в новый объект. Имена добавляемых свойств совпадают с именами свойств в этом объекте. Эти свойства соответствуют второму аргументу метода Object.defineProperties() Возвращаемые значения: Новый объект с заданным прототипом и свойствами.

Исключения: Выбрасывает исключение TypeError, если параметр proto не является null или объектом (исключение составляют объекты-обёртки примитивных типов).

Подробнее: Object.create()

Object.getPrototypeOf()

Метод Object.getPrototypeOf() возвращает прототип (то есть, внутреннее свойство [[Prototype]]) указанного объекта.

Object.getPrototypeOf(obj)

obj Объект, чей прототип будет возвращён.

Подробнее: Object.getPrototypeOf()