Was ist der Unterschied zwischen der Verwendung von Object.create () und der Verwendung des Zuweisungsoperators?

Hier einige Beispiele.

// 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!'

Meiner Ansicht nachObject.create() Lässt einfach beide Objekte auf denselben Prototyp verweisen, während durch die Zuweisung beide Objekte auf dieselbe Position verweisen (nicht nur auf einen Prototyp).Aber warum wird dann in Fall 3 das Datenobjekt überschrieben?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage