首頁>技術>

前端JavaScript設計模式-備忘錄模式:

備忘錄模式指可以隨時記錄一個物件的狀態變化,並且可以隨時恢復之前的某個狀態,此模式通常在文字編輯器中應用

// 備忘狀態class Memento{  constructor(content){    this.content = content  }  getContent(){    return this.content  }}// 備忘錄列表class CareTaker{  constructor(){    this.list = []  }  add(memento){    this.list.push(memento)  }  get(index){    return this.list[index]  }}// 編輯器class Editor{  constructor(){    this.content = null  }  setContent(content){    this.content = content  }  getContent(){    return this.content  }  saveContentToMemento(){    return new Memento(this.content)  }  getContentFromMemento(memento){    this.content = memento.getContent()  }}// 使用編輯器let editor = new Editor()let careTaker = new CareTaker()editor.setContent('輸入內容一')editor.setContent('輸入內容二')// 儲存備忘錄careTaker.add(editor.saveContentToMemento())editor.setContent('輸入內容三')// 儲存備忘錄careTaker.add(editor.saveContentToMemento())editor.setContent('輸入內容四')console.log(editor.getContent())// 撤銷editor.getContentFromMemento(careTaker.get(1))console.log(editor.getContent())//撤銷editor.getContentFromMemento(careTaker.get(0))console.log(editor.getContent())

15
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 一個建立互動式流體漸變動畫的JS庫——granim.js