我有这段代码,将节点添加到数组然后更改它,firstNode
对象在init
函数中设置。
var myClass = function() {
this.items = []
this.firstNodeValues = {};
this.init = function() {
var firstIndex = false;
for (i = 10; i <= 15; i++) {
Node = {};
Node.index = i;
Node.name = "undefined";
if (i == 10) {
Node.name = "John"
this.firstNodeValues = Node;
}
this.items[i] = Node;
}
}
this.iterate = function() {
var newIndex = 10;
for (i = 10; i <= 15; i++) {
this.items[i].index = newIndex;
if (i == 10) {
this.items[i].name = "Michael";
}
newIndex++;
}
}
}
var test = new myClass();
test.init();
console.debug(test.firstNodeValues.name) // this gives value "John"
test.iterate();
console.debug(test.firstNodeValues.name) // this gives value "Michael"
第二次调试返回"Michael"
,但为什么呢?它看起来firstNodeValues
有一个指向节点的指针items[10]
。
我希望如果我设置FirstNodeValues
infirstTime
和后来的更改节点值,那么firstNodeValues
不是 Changes 并保持与我第一次设置它的完全相同。