我想创建一个函数来创建彼此之间具有分层关系的对象。因此,每个层对象都拥有自己的一组子层对象,并与其所有同级对象共享一个父对象。我不熟悉任何模式,但我想有一个可以涵盖这种情况。
//constructor
var Tier = function(parent){
if(parent===undefined)Tier.prototype.Parent = null;
else if(parent.constructor===Tier)Tier.prototype.Parent = parent;
else return //an error code;
//each tiered object should contain it's own set of children tiers
this.Children = [];
//...
//...additional properties...
//...
this.addChild = function(){
this.Children.Push(new Tier(this));
};
}
Tier.prototype.Parent; //I want this to be shared with all other tier objects on the same tier BUT this will share it between all tier objects regaurdless of what tier the object is on :(
Tier.prototype.Siblings; //should point to the parents child array to save on memory
是否可以创建这种对象,其中每个层对象都包含自己的子对象,并与其兄弟共享一个父对象,但不同的层共享正确的父对象。我相信,如果我在添加新孩子时使用上述类似的东西,它将使 Tier.prototype.Parent 成为该孩子的父母,但对于所有不是正确行为的对象。我不知道如何解决这个问题。
非常感谢任何帮助。