ImmutableJS teilt Instanzen. In Ihrem Fall ist die Snapshot-Instanz für MapA und MapB freigegeben. Sie können dies überprüfen, indem Sie für diese Instanz benutzerdefinierte reine JS-Eigenschaften hinzufügen und diese sowohl für die MapA-Version als auch für die MapB-Version überprüfen. Sie werden feststellen, dass sie dieselben Werte haben.
Hier ist eine Geige für Sie ... https://jsfiddle.net/HaZardous/0Ls5gdht/.
Hier ist die Geige Code als Referenz -
var MapA = Immutable.fromJS({person: {name: 'Peter', age: 18}, parent: 'Sally'}),
MapB = Immutable.fromJS({prop1: 'testing'}),
person = MapA.get('person');
MapB = MapB.set('person', person);
person["nationality"] = "US";
console.log("Direct ref: " + person["nationality"]);
console.log("MapA ref: " + MapA.get('person')["nationality"]);
console.log("MapB ref: " + MapB.get('person')["nationality"]);
Ausgabe
Direct ref: US
MapA ref: US
MapB ref: US
Wirklich gutes Beispiel dank zu beweisen :) –