所以,我在js中创建了一个标准的链表列表,它工作得很好但是这种情况发生在例如/.....
var myRef = new LinkedList() //let's say with vals 1->2->3
console.log(myRef) //2->3 They are both the same!!!! even though delete happens later in code!!!
myRef.deleteFirst();
console.log(myRef) //2->3 They are both the Same!!
LinkedList.prototype.deleteFirst = function() {
if (this.head.next == null) {
return;
}
var dummy = this.head.next.next;
var value = this.head.next.data;
delete this.head.next;
this.head.next = dummy;
this.head.length -= 1;
return value;
}
答案 0 :(得分:0)
试试这个:
console.log(JSON.stringify(myRef));
这将打印对象的stringify版本。因此,取而代之的是对象将获取对象的内容,否则因为myRef是一个指针,其内容将更改,日志显示最新值。
答案 1 :(得分:0)
控制台将引用该对象,该对象将在对象更新时更新。你可以这样做:
console.log(jQuery.extend(true, {}, myRef));
将创建对象的独立副本。这将允许您检查不同的状态。