階層的な関係にあるオブジェクトを作成する関数を作りたいと思います。したがって、各層オブジェクトは独自の子層オブジェクトのセットを保持し、単一の親オブジェクトをそのすべての兄弟と共有します。私はどんなパターンにも慣れていませんが、このタイプのシナリオをカバーするものがあると思います。
//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がその子の親になりますが、すべてのオブジェクトに対して正しい動作ではないと思います。これを回避する方法がわかりません。
どんな助けでも大歓迎です。