Lambda saysObject.assign copies properties; Object.freeze and seal lock an object down.
Object.assign(target, ...sources) copies enumerable props (a shallow merge). Object.freeze(obj) makes it fully immutable (no add/change/delete); Object.seal(obj) allows changing existing values but no adding/removing. Freeze is shallow — nested objects stay mutable.
Power-ups you unlock
Object.assign(target, src) shallow-merges
Object.freeze → fully immutable (shallow)
Object.seal → edit values, no add/remove
Spread {...a, ...b} is the modern merge
The Mutator attacks — common mistakes
Expecting freeze to deep-freeze nested objects
assign mutating the target unexpectedly
Silent failure freezing in non-strict mode
Boss battleFreeze an object, try to change a property (no effect), then merge two with spread.