Чем отличается Object.setPrototypeOf от Object.create?
Object.setPrototypeOf(foo, bar)` 
- проставляет ссылку на bar в foo.__proto__

const bar = Object.create(foo)
 - создает новый объект bar  и bar.__proto__ будет указывать на foo.

Разница в том, что 1 всего лишь проставляет ссылки, памяти под новый объект не выделяется
А второй метод создает новый объект.
Crete создаёт прототип в объекте , а setPrototypeOf типо передает другому объекту ( первый параметр) прототип указанный вторым параметром. Как то так