在javascript中使用树遍历方法扩展对象

时间:2011-02-09 02:49:06

标签: javascript tree-traversal

我有一个自定义对象,其中包含一个数组(称为“children”),其中将存储相同类型的对象,结果创建了一个树。
让我们说它看起来像那样:

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

现在,我想在此对象中添加一个“forAll”方法,该方法将以深度优先的方式对该树的所有元素执行另一个作为参数提供的函数。最好的方法是什么?

1 个答案:

答案 0 :(得分: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);
}