日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

原型模式的应用场景_前端常用设计模式

發布時間:2024/4/11 HTML 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原型模式的应用场景_前端常用设计模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

求關注

前端常見的設計模式主要有以下幾種:1. 單例模式2. 工廠模式3. 策略模式4. 代理模式5. 觀察者模式6. 模塊模式7. 構造函數模式8. 混合模式

  • 單例模式
    這種設計模式的思想是確保一個類只有唯一實例,一般用于全局緩存,比如全局window,唯一登錄浮窗等。采用閉包的方式實現如下:
  • 工廠模式
    工廠模式是創建對象的常用設計模式,為了不暴露創建對象的具體邏輯,將邏輯封裝在一個函數中,這個函數就稱為一個工廠。本質上是一個負責生產對象實例的工廠。工廠模式根據抽象程度的不同可以分為:簡單工廠,工廠方法和抽象工廠。通常用于根據權限生成角色的場景,抽象工廠方法的實現如下:
//安全模式創建的工廠方法函數let UserFactory = function(role) { if(this instanceof UserFactory) { var s = new this[role](); return s; } else { return new UserFactory(role); }}//工廠方法函數的原型中設置所有對象的構造函數UserFactory.prototype = { SuperAdmin: function() { this.name = "超級管理員", this.viewPage = ['首頁', '通訊錄', '發現頁', '應用數據', '權限管理'] }, Admin: function() { this.name = "管理員", this.viewPage = ['首頁', '通訊錄', '發現頁', '應用數據'] }, NormalUser: function() { this.name = '普通用戶', this.viewPage = ['首頁', '通訊錄', '發現頁'] }}//調用let superAdmin = UserFactory('SuperAdmin');let admin = UserFactory('Admin') let normalUser = UserFactory('NormalUser')
  • 策略模式
    策略模式的本意將算法的使用與算法的實現分離開來,避免多重判斷調用哪些算法。適用于有多個判斷分支的場景,如解決表單驗證的問題。你可以創建一個validator對象,有一個validate()方法。這個方法被調用時不用區分具體的表單類型,它總是會返回同樣的結果——一個沒有通過驗證的列表和錯誤信息。實現方式如下:
// 對于vip客戶function vipPrice() { this.discount = 0.5;} vipPrice.prototype.getPrice = function(price) {  return price * this.discount;}// 對于老客戶function oldPrice() { this.discount = 0.3;} oldPrice.prototype.getPrice = function(price) { return price * this.discount;}// 對于普通客戶function Price() { this.discount = 1;} Price.prototype.getPrice = function(price) { return price ;}// 上下文,對于客戶端的使用function Context() { this.name = ''; this.strategy = null; this.price = 0;} Context.prototype.set = function(name, strategy, price) { this.name = name; this.strategy = strategy; this.price = price;}Context.prototype.getResult = function() { console.log(this.name + ' 的結賬價為: ' + this.strategy.getPrice(this.price));}var context = new Context();var vip = new vipPrice();context.set ('vip客戶', vip, 200);context.getResult(); // vip客戶 的結賬價為: 100var old = new oldPrice();context.set ('老客戶', old, 200);context.getResult(); // 老客戶 的結賬價為: 60var Price = new Price();context.set ('普通客戶', Price, 200);context.getResult(); // 普通客戶 的結賬價為: 200
  • 代理模式
    代理模式是為其他對象提供一種代理,也就是當其他對象直接訪問該對象時,如果開銷較大,就可以通過這個代理層控制對該對象的訪問。常見的使用場景為懶加載,合并http請求和緩存。代理模式的實現如下:
(function(){ // 目標對象,是真正被代理的對象 function Subject(){} Subject.prototype.request = function(){}; function Proxy(realSubject){ this.realSubject = realSubject; } Proxy.prototype.request = function(){ this.realSubject.request(); };}());
  • 觀察者模式
    也叫發布訂閱模式,在這種模式中,一個訂閱者訂閱發布者,當一個特定的事件發生的時候,發布者會通知(調用)所有的訂閱者。實現代碼如下:
var EventCenter = (function(){ var events = {}; function on(event, handler){ events[event] = events[event] || []; events[event].push({ handler: handler }); } function fire(event, args){ if (!events[event]) {return} for (var i = 0; i < events[event].length; i++) { events[event][i].handler(args); } } function off(event){ delete events[event]; } return { on: on, fire: fire, off: off }})();EventCenter.on('event', function(data){console.log('event received...');});
  • 模塊模式
    模塊模式可以指定類想暴露的屬性和方法,并且不會污染全局。采用閉包的形式,實現如下:
var Person = (function() { var name = 'xxx' function sayName() { console.log(name) } return{ name: name, sayName: sayName }})()
  • 構造函數模式和混合模式
    構造函數和混合模式就是js中繼承的兩種實現方式,前者通過構造函數的形式定義類,通過new新增實例。而后者是將構造函數的引用屬性和方法放到其原型上,子類是父類原型的一個實例。

總結

以上是生活随笔為你收集整理的原型模式的应用场景_前端常用设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线高清观看免费 | 伊人亚洲| 偷自在线 | 欧美专区在线观看 | 九九九视频在线观看 | 99视频网 | 日本一区二区三区视频在线 | 精品国产无码一区二区 | 亚洲精品二区三区 | 卡通动漫精品一区二区三区 | 美女久久久久久久 | 久久久久久久久免费视频 | 国产白丝在线观看 | 91视频免费在线观看 | 真性中出 | 伊人久久中文字幕 | 性xxxx欧美| 日日干夜夜撸 | 极品少妇一区 | 黄网站欧美内射 | 亚洲高清毛片 | 日韩视频免费观看高清完整版在线观看 | 亚洲天堂中文字幕在线观看 | 91久久综合精品国产丝袜蜜芽 | 国产成人99 | 欧美日韩人妻精品一区 | 国产黄a三级三级三级 | 亚洲人人在线 | 欧美成人女星 | 男女激情四射网站 | 激情总合网 | 亚洲欧洲日韩综合 | 成人性做爰aaa片免费 | 中文字幕少妇 | 韩日精品在线 | 密臀久久 | 日批网址 | 国产a级片免费看 | 日本一区二区在线免费 | 欧美黄在线| 亚州精品视频 | 狠狠爱夜夜操 | 国产成年人视频网站 | 激情视频一区二区 | 日本成人免费观看 | 亚洲AV无码国产精品午夜字幕 | 污动漫网站 | 久久精品视频在线观看 | 亚洲综合另类 | 欧美视频网址 | 日韩在线天堂 | av网站大全在线观看 | 国产一区 在线播放 | 国产高清毛片 | 久久综合婷婷国产二区高清 | 啪啪网站免费观看 | 亚洲男人天堂2022 | 男女曰逼视频 | 国产做爰全免费的视频软件 | 在线免费观看国产视频 | 国产美女在线观看 | 亚洲欧美日韩一区在线观看 | 美女高潮流白浆视频 | 国产成人在线影院 | 蜜臀久久精品久久久久 | 91成人一区 | av在线大全| 中文字幕第15页 | 国产精品一二三区视频 | 色视频免费看 | 91九色中文 | 污污视频在线免费观看 | 在线观看色 | 久草视频中文在线 | 亚洲伊人久久久 | 啪啪视屏 | 一级黄色免费网站 | 亚洲天堂日本 | 毛片高清 | 99re在线观看视频 | 国产欧美久久久久久 | 日韩超碰在线 | 日本一区中文 | 黄色网免费看 | 超碰999 | 久久久久久久久久99精品 | 亚洲av综合色区无码二区爱av | 亚洲射射 | 欧美一级黄色片视频 | 国产又粗又长视频 | 国产一区二区视频在线免费观看 | 国产精品免费精品一区 | 96视频在线| 久久精品国产99久久 | 手机av资源 | 精品视频免费看 | 国产乱子轮xxx农村 岛国久久久 | 美女久久视频 | 婷婷99|