作用:
封装的对象可以在对象触发行为时进行状态的记录与保存
也可以进行状态的回退,恢复之前的状态
示例:
class Editor{constructor(){this.allText = ''}edit(text){this.allText += text}saveNow(){return new EditorText(this.allText)}backspacing(editorText){this.allText = editorText.getText()console.log(this.allText,'???')}}class EditorText{constructor(text){this.text = text}getText(){return this.text}}class History{constructor(){this.textNodeList = []}add(text){this.textNodeList.push(text)}delete(){this.textNodeList.pop()return this.textNodeList[this.textNodeList.length-1]}}const editor = new Editor()const history = new History()editor.edit('两个黄鹂鸣翠柳,')history.add(editor.saveNow())console.log(editor,'当前文本1')console.log(history,'历史记录1')editor.edit('一行白鹭上西天。')history.add(editor.saveNow())console.log(editor,'当前文本2')console.log(history,'历史记录2')//写的不对,撤回一下editor.backspacing(history.delete())console.log(editor,'当前文本3')console.log(history,'历史记录3')editor.edit('一行白鹭上青天。')history.add(editor.saveNow())console.log(editor,'当前文本4')console.log(history,'历史记录4')