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()