В чем разница между использованием Object.create () и использованием оператора присваивания?

Вот несколько примеров.

// case 1:
var obj1 = {msg : 'Hello'};
var obj2 = obj1;
obj2.msg = "Hi!"; //overwrites
alert(obj1.msg); //=>'Hi!'

// case 2:
var obj1 = {msg : 'Hello'};
var obj2 = Object.create(obj1);
obj2.msg = "Hi!"; //does not overwrite
alert(obj1.msg); //=>'Hello'

// case 3:
var obj1 = {data: { msg : 'Hello'}}
var obj2 = Object.create(obj1);
obj2.data.msg = "Hi!"; //overwrites, Why?
alert(obj1.data.msg); //=>'Hi!'

думаюObject.create() просто дает оба делает оба указывают на один и тот же прототип, в то время как присвоение заставляет оба объекта указывать на одно и то же местоположение (не только прототип).Но тогда почему объект данных перезаписывается в случае 3?

Ответы на вопрос(3)

Ваш ответ на вопрос