对象原型创建方法的差异

我想知道以下使用原型的对象创建方法之间的区别是什么。我也想知道使用原型创建对象的最有效方法是什么。

//object.create
var personProto = {
    calculateAge: function() {
        console.log(2020 - this.yearOfBirth);
    }
};

//Option 1

var john = Object.create(personProto);
john.name = 'John';
john.yearOfBirth = 1990;
john.job = 'Teacher';

//option 2
var nimath = Object.create(personProto, {
    name: { value: 'nimath' },
    yearOfBirth: { value: 2003 },
    job: { value: 'designer' }
});
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
    <h1></h1>
    <script src="script.js"></script>
</body>

</html>