亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

js設(shè)計(jì)模式--命令模式

Bryan / 2937人閱讀

摘要:中的命令模式點(diǎn)擊按鈕刷新菜單目錄設(shè)置背景色的例子撤銷命令我們現(xiàn)在來實(shí)現(xiàn)一個(gè)撤銷操作的例子界面上有四個(gè)按鈕,三個(gè)可以設(shè)置不同的背景色,按鈕可以撤銷上一次的操作重做操作這里我們?cè)黾右粋€(gè)按鈕,以恢復(fù)之前的操作,需要一個(gè)來記錄當(dāng)前的索引

前言

本系列文章主要根據(jù)《JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐》整理而來,其中會(huì)加入了一些自己的思考。希望對(duì)大家有所幫助。

文章系列

js設(shè)計(jì)模式--單例模式

js設(shè)計(jì)模式--策略模式

js設(shè)計(jì)模式--代理模式

js設(shè)計(jì)模式--迭代器模式

js設(shè)計(jì)模式--發(fā)布訂閱模式

概念

命令模式中的命令(command)指的是一個(gè)執(zhí)行某些特定事情的指令。

場(chǎng)景

有時(shí)候需要向某些對(duì)象發(fā)送請(qǐng)求,但是并不知道請(qǐng)求的接收 者是誰,也不知道被請(qǐng)求的操作是什么。
如快餐店點(diǎn)餐,我們不需要知道廚師是誰,我們只需要把訂單交給服務(wù)員

優(yōu)缺點(diǎn)

請(qǐng)求發(fā)送者和請(qǐng)求接收者能夠消除彼此之間的耦合關(guān)系

例子 按鈕點(diǎn)擊 簡(jiǎn)單的實(shí)現(xiàn)




  
  
  
  Document



  

  


如果這個(gè)點(diǎn)擊事件實(shí)現(xiàn)很復(fù)雜,需要多人合作完成,那我們不得不深入到button1.onclick內(nèi)部去修改代碼,違背了開放封閉原則

命令模式實(shí)現(xiàn)




  
  
  
  Document



  

  




JavaScript 作為將函數(shù)作為一等對(duì)象的語言,跟策略模式一樣,命令模式也早已融入到了 JavaScript 語言之中。

js中的命令模式




  
  
  
  Document



  

  



設(shè)置背景色的例子 撤銷命令

我們現(xiàn)在來實(shí)現(xiàn)一個(gè)撤銷操作的例子:
界面上有四個(gè)按鈕,三個(gè)可以設(shè)置不同的背景色,undo按鈕可以撤銷上一次的操作





  
  
  
  Document



  
重做操作

這里我們?cè)黾右粋€(gè)redo按鈕,以恢復(fù)之前的操作,需要一個(gè)currentIndex來記錄當(dāng)前的索引





  
  
  
  Document



  

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/100688.html

相關(guān)文章

  • js設(shè)計(jì)模式 --- 命令設(shè)計(jì)模式

    摘要:命令設(shè)計(jì)模式涉及三類對(duì)象抽象命令類抽象命令類一般是一個(gè)抽象類或接口,在其中聲明了用于執(zhí)行請(qǐng)求的等方法,通過這些方法可以調(diào)用請(qǐng)求接收者的相關(guān)操作。 命令模式 命令模式定義為:Encapsulate a request as an object,there by letting you parameterize clients with different requests,queue o...

    iflove 評(píng)論0 收藏0
  • 基于Web的svg編輯器(1)——撤銷重做功能

    摘要:撤銷重做是一款編輯器的基礎(chǔ)功能,它讓用戶在進(jìn)行錯(cuò)誤操作后,可以讓編輯器回滾到錯(cuò)誤操作前的狀態(tài)。選擇實(shí)現(xiàn)方案基于對(duì)象序列化的實(shí)現(xiàn)功能,其中一個(gè)方法是基于對(duì)象序列化的。示例編輯器的撤銷重做功能使用了這種模式。 最近在做一個(gè)網(wǎng)頁版的 svg 編輯器,為此學(xué)習(xí)了編輯器相關(guān)方面的知識(shí)。本文是我的一些粗淺學(xué)習(xí)總結(jié),希望可以給初學(xué)者一些思路。 前面的話 隨著近幾年前端技術(shù)的快速發(fā)展,人們更傾向于將應(yīng)...

    Jaden 評(píng)論0 收藏0
  • 前端應(yīng)該掌握的linux命令和工具

    摘要:大部分前端應(yīng)用都部署在上,若想全局住一個(gè)項(xiàng)目,命令是一項(xiàng)必不可少的技能。編輯器命令非常強(qiáng)大,掌握最最基本的就可以解決問題了。命令模式下接受命令輸入且顯示在終端,回車生效。常見的命令有,退出,強(qiáng)制退出,保存,保存并退出。 大部分前端應(yīng)用都部署在linux上,若想全局hold住一個(gè)項(xiàng)目,linux命令是一項(xiàng)必不可少的技能。許多前端對(duì)linux命令并不重視,其實(shí)這是一個(gè)學(xué)習(xí)性價(jià)比非常高的知識(shí)...

    tuantuan 評(píng)論0 收藏0
  • Linux CentOS7 搭建node服務(wù)詳細(xì)教程

    摘要:前言近期在準(zhǔn)備搭建一個(gè)全棧開發(fā)的社區(qū),之前由于沒有云服務(wù)器搭建經(jīng)驗(yàn),這篇文章做一下相關(guān)的記錄,后續(xù)再深入學(xué)習(xí)研究?;蛴脩舻卿浽品?wù)器,直接使用命令進(jìn)行連接,如云服務(wù)器公網(wǎng),然后輸入用戶的初始密碼,即可完成登錄。云服務(wù)器的端口,必須填。 前言 近期在準(zhǔn)備搭建一個(gè)vue.js+node.js全棧開發(fā)的社區(qū),之前由于沒有云服務(wù)器搭建經(jīng)驗(yàn),這篇文章做一下相關(guān)的記錄,后續(xù)再深入學(xué)習(xí)研究。本文不局...

    CastlePeaK 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<