我有一个自定义对象,其中包含一个数组(称为“children”),其中将存储相同类型的对象,结果创建了一个树。
让我们说它看起来像那样:
function CustomObject(){
if (this instanceof Topic) {
this.text = "Test";
this.children = [];
} else
return new CustomObject(); }
现在,我想在此对象中添加一个“forAll”方法,该方法将以深度优先的方式对该树的所有元素执行另一个作为参数提供的函数。最好的方法是什么?
答案 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);
}