javascript 中模板方法單例的實現(xiàn)方法
javascript 中模板方法單例的實現(xiàn)方法
模板方法單例
模板方法的定義:父類中定義一組操作算法骨架,將一些實現(xiàn)步驟延伸到子類中,使得子類可以不改變父類的算法結構的同時可重新定義算法中某些實現(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]
});
}
//基礎導航
var Nav = function (data) {
//基礎導航樣式模板
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;
}
//帶有信息提示信息導航
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);
}
//帶有鏈接地址的導航
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);
}
//測試帶有信息提示的導航
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 : '騰訊首頁',
name : '騰訊',
num : 3,
link : 'www.qq.com'
}
]);
其實模板方法模式不僅僅在我們歸一化組件的時候使用 有時候創(chuàng)建頁面時也是很常用到的。通過上述代碼可以衍生出的靜態(tài)頁面的封裝以及業(yè)務邏輯的交互封裝。
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
javascript簡單實現(xiàn)跟隨滾動條漂浮的返回頂部按鈕效果
這篇文章主要介紹了javascript簡單實現(xiàn)跟隨滾動條漂浮的返回頂部按鈕效果,涉及javascript基于onscroll事件動態(tài)改變頁面元素樣式的相關技巧,需要的朋友可以參考下2016-08-08
javascript fullscreen全屏實現(xiàn)代碼
用了實現(xiàn)打開一個滿屏的代碼2009-04-04
layer ui插件顯示tips時,修改字體顏色的實現(xiàn)方法
今天小編就為大家分享一篇layer ui插件顯示tips時,修改字體顏色的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09

