1

以下のコードでは、2つのクラスがあります。1つはNodeで、もう1つはBtreeです。ノードでsplit()インスタンスが呼び出された場合は、新しいノードを作成し、それを親として保存して、Btreeのルートノードを変更します。

ノードはどのようにしてBtree.rootにアクセスできますか?クラス継承を使用する必要がありますか?(このコードは完全なコードではないので、エラーが発生する可能性があります...私はそれを理解したいだけですが)

    Node = function(dimension,root){
        this.root = root;
        this.parent = null;
    }

    Node.prototype.split = function(
        var tmp = new Node();
        if(!this.parent){
            var soon_to_be_root = new Node();
            this.parent = soon_to_be_root;
        }
    }
    Btree = function(dimension){
        this.d = dimension;
        this.root = new Node(dimension,true);
    }
4

1 に答える 1

0

Btreeがシングルトンオブジェクトの場合、次のようになります。

var soon_to_be_root = new Node;
Btree.root = soon_to_be_root;

Btreeがクラスであり、それらのインスタンスが多数ある場合は、それらを関連付ける必要があります。ノードには「Bツリー」がありますか?Btreeには「ノード」がありますか?これらのいずれかが正しい場合は、もう一方のインスタンスを作成するときに一方のインスタンスを渡す必要があります。

一方、ノードが「Bツリー」であるか、Bツリーが「ノード」である場合は、継承が適切です。

于 2011-04-18T02:10:52.210 に答える