分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

js 模板方法模式

发布时间:2023-09-06 01:35责任编辑:彭小芳关键词:js

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

例:导航的实现

//算法骨架
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 模板方法模式

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved