码迷,mamicode.com
首页 > Web开发 > 详细

js 模板方法模式

时间:2018-01-08 18:38:58      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:改变   document   url   ace   sig   com   htm   ref   fine   

父类中定义算法骨架,子类中实现和改变一些算法

例:导航的实现

//算法骨架
var formateStr=function (param, data) {
return param.replace(/\{#(\w+)#\}/g,function (match, key) {
return typeof data[key]===undefined? "":data[key]
})
};
var Nav=function (data) {
var _this=this;
_this.item=‘<li><a href="{#hrefUrl#}" title="{#title#}" {#sign#}>{#content#}</a></li>‘;
_this.html=‘<ul>‘;
for (var i=0,l=data.length;i<l;i++){
_this.html+=formateStr(_this.item,data[i])
}
_this.html+=‘</ul>‘;
return _this.html;
};

//基础导航
var obNav=document.getElementById(‘nav‘);
obNav.innerHTML=Nav([
{
hrefUrl : ‘http://www.baidu.com‘,
content : ‘百度一下‘
},
{
hrefUrl : ‘http://www.zhihu.com‘,
content : ‘知乎一下‘
}
]);


//带提示消息的导航
var infoNav=function (data) {
var _this=this;
_this.info=‘<i>{#num#}</i>‘;
for (var i=data.length-1;i>=0;i--){
data[i].content+=formateStr(_this.info,data[i])
}
return Nav.call(this,data)
};
var objNav=document.getElementById(‘nav‘);
objNav.innerHTML=infoNav([
{
hrefUrl : ‘http://www.baidu.com‘,
content : ‘百度一下‘,
title : ‘百度‘,
num : ‘10‘,
sign : ‘sign="1"‘
},
{
hrefUrl : ‘http://www.zhihu.com‘,
content : ‘知乎一下‘,
title : ‘知乎‘,
num : ‘10‘,
sign : ‘sign="2"‘
}
]);

js 模板方法模式

标签:改变   document   url   ace   sig   com   htm   ref   fine   

原文地址:https://www.cnblogs.com/redn/p/8119419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!