javascript 中模板方法單例的實(shí)現(xiàn)方法
javascript 中模板方法單例的實(shí)現(xiàn)方法
模板方法單例
模板方法的定義:父類中定義一組操作算法骨架,將一些實(shí)現(xiàn)步驟延伸到子類中,使得子類可以不改變父類的算法結(jié)構(gòu)的同時(shí)可重新定義算法中某些實(shí)現(xiàn)步驟。
代碼塊
html部分,例如:
<div id="content"></div>
js部分,例如:
//格式化字符串方法 function fromateString(str, data) { return str.replace(/\{#(\w+)#\}/g, function(match, key){ return typeof data[key] === undefined ? '' : data[key] }); } //基礎(chǔ)導(dǎo)航 var Nav = function (data) { //基礎(chǔ)導(dǎo)航樣式模板 this.item = '<a href="{#href#}" rel="external nofollow" title="{#title#}">{#name#}</a>'; //創(chuàng)建字符串 this.html=''; for (var i = 0; i < data.length; i++) { this.html += fromateString(this.item, data[i]); } return this.html; } //帶有信息提示信息導(dǎo)航 var NumNav = function (data) { //消息提醒小心組件模板 var tpl = '<p>{#num#}</p>'; for (var i = data.length -1; i >= 0; i--) { data[i].name += data[i].name + fromateString(tpl, data[i]); } return Nav.call(this, data); } //帶有鏈接地址的導(dǎo)航 var LinkNav = function (data) { //消息提醒小心組件模板 var tpl = '<span>{#link#}</span>'; for (var i = data.length -1; i >= 0; i--) { data[i].name += data[i].name + fromateString(tpl, data[i]); } return Nav.call(this, data); } //測(cè)試帶有信息提示的導(dǎo)航 var nav = document.getElementById('content'); nav.innerHTML = NumNav([ { href : 'www.baidu.com', title : '百度一下你就知道', name : '百度', num : 10, link : 'www.baidu.com' }, { href : 'www.taobao.com', title : '淘寶商城', name : '淘寶', num : 2, link : 'www.taobao.com' }, { href : 'www.qq.com', title : '騰訊首頁(yè)', name : '騰訊', num : 3, link : 'www.qq.com' } ]);
其實(shí)模板方法模式不僅僅在我們歸一化組件的時(shí)候使用 有時(shí)候創(chuàng)建頁(yè)面時(shí)也是很常用到的。通過(guò)上述代碼可以衍生出的靜態(tài)頁(yè)面的封裝以及業(yè)務(wù)邏輯的交互封裝。
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- JavaScript設(shè)計(jì)模式之單例模式原理與用法實(shí)例分析
- JavaScript設(shè)計(jì)模式之單例模式簡(jiǎn)單實(shí)例教程
- JS基于設(shè)計(jì)模式中的單例模式(Singleton)實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能
- NodeJS設(shè)計(jì)模式總結(jié)【單例模式,適配器模式,裝飾模式,觀察者模式】
- [js高手之路]單例模式實(shí)現(xiàn)模態(tài)框的示例
- 原生Javascript和jQuery做輪播圖簡(jiǎn)單例子
- 輕松掌握J(rèn)avaScript單例模式
- 基于JavaScript實(shí)現(xiàn)單例模式
相關(guān)文章
javascript簡(jiǎn)單實(shí)現(xiàn)跟隨滾動(dòng)條漂浮的返回頂部按鈕效果
這篇文章主要介紹了javascript簡(jiǎn)單實(shí)現(xiàn)跟隨滾動(dòng)條漂浮的返回頂部按鈕效果,涉及javascript基于onscroll事件動(dòng)態(tài)改變頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-08-08老生常談jacascript DOM節(jié)點(diǎn)獲取
下面小編就為大家?guī)?lái)一篇老生常談jacascript DOM節(jié)點(diǎn)獲取。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04js的函數(shù)的按值傳遞參數(shù)(實(shí)例講解)
下面小編就為大家分享一篇js的函數(shù)的按值傳遞參數(shù)的實(shí)例,具有很好的參考價(jià)值,一起跟隨小編過(guò)來(lái)看看吧,希望對(duì)大家有所幫助2017-11-11javascript fullscreen全屏實(shí)現(xiàn)代碼
用了實(shí)現(xiàn)打開(kāi)一個(gè)滿屏的代碼2009-04-04JS常用正則表達(dá)式總結(jié)【經(jīng)典】
這篇文章主要介紹了JS常用正則表達(dá)式,總結(jié)分析了常見(jiàn)的數(shù)字、字符、郵箱、身份證、電話等的正則驗(yàn)證技巧,需要的朋友可以參考下2017-05-05layer ui插件顯示tips時(shí),修改字體顏色的實(shí)現(xiàn)方法
今天小編就為大家分享一篇layer ui插件顯示tips時(shí),修改字體顏色的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09