js設計模式:備忘錄模式

作用:

封裝的對象可以在對象觸發行為時進行狀態的記錄與保存

也可以進行狀態的回退,恢復之前的狀態

示例:

        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')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

護眼臺燈哪個品牌更好用?五大好用護眼臺燈大爆料!

護眼臺燈相信大家都有所耳聞或者使用過,家里有小孩的可能了解更深,畢竟是孩子學習時需要使用的小家電。現在市面上的護眼臺燈種類可以說是多到眼花繚亂,甚至有些劣質的產品摻雜在里面,或許有些寶媽已經踩過一些坑了,護眼臺燈究竟哪個品牌更好用? &#x…

這個春節,爽了

四次醫院 請了一周假,準備開始愉快的長假。 結果第一天小孩就發燒了,趕緊送醫院拿藥。回到家才發現,給醫生看的驗血報告是上一次的,那是好幾個月之前的。 但是藥已經吃了,這是吃錯藥了呀!! …

手機中有哪些逆向進化的功能

手機中有哪些逆向進化的功能?逆向進化是指明明很優秀的很方便的功能,卻因為成本或者其他工業原因莫名其妙地給取消了。 逆向進化1:可拆卸電池-變為不可拆卸電池。 智能手機為了追求輕薄等原因,所以移除了可拆卸電池功能。將電池…

GoLand 相關

goland 下載依賴 go mod tidy:保持依賴整潔 go mod tidy 命令的作用是清理未使用的依賴,并更新 go.mod 以及 go.sum 文件。 go mod tidy 和 go mod vendor 兩個命令是維護項目依賴不可或缺的工具。go mod tidy 確保了項目的 go.mod 文件精簡且準確&…

ubuntu20.04安裝實時內核補丁PREEMPT_RT

參考: Ubuntu 18.04安裝 RT-PREEMPT 實時內核及補丁【過程記錄】_ubuntu18.04 preempt rt linux 5.6.19-CSDN博客 https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md當前內核:5.15.0-94-ge…

1.deeplabv3+網絡結構及原理

這里的網絡結構及原理可以看這篇博客,DeepLabV3: 在DeepLabV3基礎上引入了Decoder_matlab deeplabv3resnet101-CSDN博客該博客翻譯原論文解釋得很清楚。 一、引言 語義分割的目標是為圖像中的每個像素分配語義標簽。在這項研究中,考慮了兩種類型的神經網…

Vue計算屬性computed()

1. 計算屬性定義 獲取計算屬性值 <div>{{ 計算屬性名稱}}</div>創建計算屬性 let 定義的屬性ref/reactive....let 計算屬性名稱 computed(() > {//這里寫函數式,函數式里面包含定義屬性//只有這個包含的定義屬性被修改時才出發此函數式//通過計算屬性名稱co…

docker:Haoop集群

系列文章目錄 docker&#xff1a;環境安裝 docker:Web遷移 docker:Haoop集群 文章目錄 系列文章目錄前言一、宿主機選擇二、環境準備1.前置技術2.網絡環境1. docker網卡2. 分配IP 三、容器互聯三、Jdk和Hadoop安裝四、分發腳本五、啟動Hadoop總結 前言 年前學習了docker的相關…

ubuntu18 環境安裝

1. ubuntu18 環境安裝 1. ubuntu18 環境安裝 1.1. default language1.2. sougou shurufa1.3. cmake-last1.4. audio-recorder1.5. sources.list切換清華源1.6. oh my zsh1.7. weixin1.8. bcompare1.9. wireshark1.10. 其他問題 1.1. default language ubuntu 修改系統默認語…

https://registry.npm.taobao.org淘寶npm鏡像倉庫地址更新

在工作中有遇見獲取淘寶的npm鏡像存在問題&#xff0c;圖示如下的報錯&#xff1a; 根據報錯的內容是說 https://registry.npm.taobao.org地址訪問失敗了&#xff0c;然后通過排查發現淘寶的npm鏡像倉庫地址有更新了。需要使用最新的地址 舊的淘寶鏡像倉庫&#xff1a;https://…

數據結構2月19日

題目&#xff1a;順序表作業 代碼&#xff1a; 功能區&#xff1a; #include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list (SeqList*)malloc(sizeof(SeqList));if(NULL list){return NULL;}list->p…

Linux系列講解 —— 【Vim編輯器】在Ubuntu18.04中安裝新版Vim

平時用的電腦系統是Ubuntu18.04&#xff0c;使用apt安裝VIM的默認版本是8.0。如果想要安裝新版的Vim編輯器&#xff0c;只能下載Vim源碼后進行編譯安裝。 目錄 1. 下載Vim源碼2. 編譯3. 安裝4. 遇到的問題4.1 打開vim后&#xff0c;文本開頭有亂碼現象。4.2 在Vim編輯器中&…

JS常見問題

文章目錄 如何判斷是數組 如何判斷是數組 Array.isArray console.log(Array.isArray(arr))instanceof&#xff08;instanceof 運算符用于驗證構造函數的 prototype 屬性是否出現在對象的原型鏈中的任意位置&#xff09; console.log(arr1 instanceof Array)constructor&#x…

百面嵌入式專欄(經驗篇)如何在面試中介紹自己的項目經驗

文章目錄 1. 在面試前準備項目描述,別害怕,因為面試官什么都不知道2. 準備項目的各種細節,一旦被問倒了,就說明你沒做過3.不露痕跡地說出面試官愛聽的話4.一定要主動,面試官沒有義務挖掘你的亮點5.一旦有低級錯誤,可能會直接出局6.引導篇:準備些加分點,在介紹時有意提到…

測試環境搭建整套大數據系統(三:搭建集群zookeeper,hdfs,mapreduce,yarn,hive)

一&#xff1a;搭建zk https://blog.csdn.net/weixin_43446246/article/details/123327143 二&#xff1a;搭建hadoop&#xff0c;yarn&#xff0c;mapreduce。 1. 安裝hadoop。 sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt2. 修改java配置路徑。 cd /opt/hadoop-3.2.4/etc…

R語言【raster】——projectRaster():映射一個Raster對象

Package raster version 3.6-27 Description 用另一個投影(坐標參考系統&#xff0c;(CRS))將一個Raster*對象的值投影到一個新的Raster*對象。 您可以通過將新投影作為單個參數提供來實現這一點&#xff0c;在這種情況下&#xff0c;函數將設置新對象的范圍和分辨率。為了對…

Three.js初學(3)

Three.js初學&#xff08;3&#xff09; 動畫渲染循環1. 請求動畫幀2. 旋轉動畫 Canvas畫布布局和全屏常見幾何體渲染器設置GUI.js庫1. 庫的引入2. 如何使用初步調試進階調試界面分組 動畫渲染循環 1. 請求動畫幀 requestAnimationFrame實現周期性循環執行 requestAnimationF…

LeetCode | 整數反轉 C語言

Problem: 7. 整數反轉 文章目錄 思路解題方法Code結果 思路 運算部分 while(x > 0) {y x % 10;y * 10;x / 10; } y / 10;對于大于32位的數要用long int類型的變量保存用pow算-2的31次方和2的31次方-1。 解題方法 由思路得 Code int reverse(long int x){long int y …

web前端安全性——iframe安全問題

1、概念 iframe安全問題可稱作界面劫持&#xff0c;像點擊劫持、拖放劫持、觸屏劫持。就是我們的點擊&#xff0c;拖放&#xff0c;觸屏操作被劫持了&#xff0c;而去操作了其它的透明隱藏的界面。 **原理是利用透明層iframe,使用了CSS中的opacity或z-index等屬性&#xff0c;…

快速構建 Debezium MySQL Example 數據庫

博主歷時三年精心創作的《大數據平臺架構與原型實現&#xff1a;數據中臺建設實戰》一書現已由知名IT圖書品牌電子工業出版社博文視點出版發行&#xff0c;點擊《重磅推薦&#xff1a;建大數據平臺太難了&#xff01;給我發個工程原型吧&#xff01;》了解圖書詳情&#xff0c;…