加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

JS设计模式:组合模式

发布时间:2020-12-15 00:31:09 所属栏目:C语言 来源:网络整理
导读:var inheritPrototype = function(Child,Parent) { Child.prototype = new Parent();}var News = function() { this.children = []; this.element = null;} News.prototype = { init : function() { throw new Error('Nothing!'); },add : function() { thro
var inheritPrototype = function(Child,Parent) {
    Child.prototype = new Parent();
}
var News = function() {
    this.children = [];
    this.element = null;
}

News.prototype = {
init : function() {
throw new Error('Nothing!');
},add : function() {
throw new Error('Nothing!');
},getElement : function() {
throw new Error('Nothing!');
}
}

var Container = function(id,parent) {
News.call(this);
this.id = id;
this.parent = parent;
this.init();
}

Container.prototype.init = function() {
this.element = document.createElement('ul');
this.element.id = this.id;
this.element.className = 'new-container';
}

Container.prototype.add = function(child) {
this.children.push(child);
this.element.appendChild(child.getElement());
return this;
}

Container.prototype.getElement = function() {
return this.element;
}

Container.prototype.show = function() {
this.parent.appendChild(this.element);
}

部分整体的层次结构

var news1 = new Container('news',document.body);

news1.add(
new Item('normal').add(
new IconNews('','','');
)
).add(
new Item('normal').add(
new IconNews('','');
)
).show();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读