0

同じタイプのオブジェクトが格納される配列 (「子」と呼ばれる) を含むカスタム オブジェクトがあり、結果としてツリーが作成されます。
それが次のように見えるとしましょう:

function CustomObject(){
    if (this instanceof Topic) {
    this.text = "Test";
    this.children = [];
    } else
        return new CustomObject(); }

ここで、このオブジェクトに「forAll」メソッドを追加して、引数として提供された別の関数を、そのツリーのすべての要素に対して深さ優先方式で実行したいと考えています。それを行う最良の方法は何ですか?

4

1 に答える 1

1

このようなもの?

CustomObject.prototype.forAll = function(func) {
  // process this object first
  func(this);

  // then process children
  for (var i = 0; i < this.children.length; i++)
    this.children[i].forAll(func);
}
于 2011-02-09T03:09:59.193 に答える