What is the difference between the following two ways to define a prototype, and is one more correct than the other?

```js
// prototype
const animal = {
    breathe() {console.log('The animal is breathing.')},
}
// construtor
function Dog(name) {
    this.name = name;
}

Dog.prototype = animal; // without Object.create()

let a = new Dog('Annie');
a.breathe();
```

```js
// prototype
const animal = {
    breathe() {console.log('The animal is breathing.')},
}
// construtor
function Dog(name) {
    this.name = name;
}

Dog.prototype = Object.create(animal); // with Object.create

let a = new Dog('Annie');
a.breathe();
```

Why would one be more preferable over the other (especially if it is a `const` object)?