我有一个对象,它有一个数组来保存这个对象的所有孩子,孩子也是同一个对象的实例(我需要这个树状结构,其中对象是树的一个节点)
var bugObject = function(kFlag){
this._kFlag = kFlag;
this._children = []
}
bugObject.prototype.getKFlag = function(){
return this._kFlag;
};
bugObject.prototype.setChildrenFromData = function(data){
var i = 0;
var kFlag = {flagType : 'someFlag', flagValue : -1};
kddFlag.flagType = data.flagType;
var len = data.flagValues.length;
for( i = 0 ; i < len ; i++){
kFlag.flagValue = data.flagValues[i];
this._children.push(
new bugObject(kFlag)
);
//this is just to print the children
for(j = 0; j<=i; j++){
console.log('child : ' + j + ' for test :' + i);
console.log(this._children[i].getKFlag());
}
console.log('--------------------');
}
};
这个想法是使用 setChildrenFromData 方法根据一些数据创建这个对象的子对象,这就是我这样做的方式:
function main(){
console.log('main is called');
var data = {"flagType":"someFlag","flagValues":[0,0,0,0,0,0,0,0,1,0,0]};
var rootNode = new bugObject(null);
rootNode.setChildrenFromData(data);
}
main();
问题是,不是得到 11 个对象,每个对象都有这些标志之一 [0,0,0,0,0,0,0,0,0,0,1] 我得到 11 个对象,它们都有标志1、(最后一个)!
你能看看有什么问题吗!
谢谢