我定义了一个类,其中定义了许多值。我想复制它然后更改1变量。但是,当我这样做时,它也会改变原始类中的变量。
我正在使用的代码如下所示。我有什么想法吗?
var todoList = new Vue({
el:"#item_lists",
data:{
todos:[]
},
methods:{
showDeleteBtn:function(index,event){
event.stopPropagation();
if(event.currentTarget.className!=="user_choice_item")
return;
var newState = Object.assign({},this.todos[index],{show:true});
this.todos.$set(index,newState);
},
hideDeleteBtn:function(index,event){
var newState = Object.assign({},this.todos[index],{show:false});
this.todos.$set(index,newState);
},
deleteTodo:function(todo){
this.todos.$remove(todo);
return false;
},
}
});
答案 0 :(得分:2)
这看起来是因为当您Dim
NewClass
对象时,这只是为PreviousClass
对象创建另一个引用。变量名NewClass
和PreviousClass
因此引用完全相同的对象,这就是NewClass.Value1 = NewVal
也影响PreviousClass
的原因。
正如JaydipJ建议的那样,您可能需要对象的深层副本,这两个答案看起来可能对您有用 -