Uloží stav objektu tak, aby sa doň dal neskôr vrátiť.
class Snimka { constructor(text) { this.text = text; }} class Editor { #text = ''; napis(novy) { this.#text = novy; } uloz() { return new Snimka(this.#text); } obnov(snimka) { this.#text = snimka.text; }} class Historia { #snimky = []; // Snímku si odloží, ale dovnútra nikdy nenazrie. zaloz(editor) { this.#snimky.push(editor.uloz()); } spat(editor) { editor.obnov(this.#snimky.pop()); }} historia.zaloz(editor);editor.napis('nový text');historia.spat(editor); // editor je späť v pôvodnom stave