我有一個對象有一個數組來保存這個對象的所有子對象,這些子對象也是同一對象的實例(我需要本作的樹形結構,其中的對象是樹的節點)JavaScript:賦值給一個數組中的對象改變數組中所有對象的值
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();
問題我s,而不是得到11個對象,他們每個人都有這些標誌之一[0,0,0,0,0,0,0,0,0,0,1]我得到11個對象,他們都有標誌1, (最後一個)!
請問你看看有什麼問題!
感謝
我期望'this(new bugObject(kddFlag));'成爲問題。 – Ian
嗨,感謝您的回覆,我重構了代碼在這裏發佈並放錯版本,請再看一下! – MedAli