1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| class EditorMemento { public _content: string constructor(public content: string) { this._content = content; }
getContent() { return this._content; } }
class Editor { public _content: string constructor() { this._content = ""; }
type(words: string) { this._content = `${this._content} ${words}`; }
getContent() { return this._content; }
save() { return new EditorMemento(this._content); }
restore(memento: any) { this._content = memento.getContent(); } }
const editor = new Editor()
editor.type("This is the first sentence."); editor.type("This is second.");
const saved = editor.save();
editor.type("And this is third.")
console.log(editor.getContent());
editor.restore(saved);
console.log(editor.getContent());
|