JavaScript 对象 set/get 参数
JavaScript Object set/get parameters
抱歉,我的问题是 JavaScript,我不是很好,
我搜索了但没有找到答案,希望你能帮助我。
我有这个代码
var obj = {
var1:[],
var2:[],
set1: function(){
this.var1.push(1);
},
set2 : function(){
this.var2 = this.var1;
}
};
obj.set1();
obj.set2();
obj.set1();
console.log(obj.var2);
我认为在控制台中
[1],但正确的是 [1,1]
问题是如何将 set2 中的 var2 设置为在控制台中具有 [1]。
我认为 this.var2 = this.var1;是参考,但我真的需要将 var2 设置为 var1
是的,您通过引用分配它。您需要改为复制数组。我稍微修改了你的代码。
var obj = {
var1:[],
var2:[],
set1: function(){
this.var1.push(1);
},
set2 : function(){
this.var2 = this.var1.slice()
}
};
obj.set1();
obj.set2();
obj.set1();
console.log(obj.var2);
array.slice() 方法将 return 一个具有相同值的新数组。
抱歉,我的问题是 JavaScript,我不是很好, 我搜索了但没有找到答案,希望你能帮助我。 我有这个代码
var obj = {
var1:[],
var2:[],
set1: function(){
this.var1.push(1);
},
set2 : function(){
this.var2 = this.var1;
}
};
obj.set1();
obj.set2();
obj.set1();
console.log(obj.var2);
我认为在控制台中 [1],但正确的是 [1,1] 问题是如何将 set2 中的 var2 设置为在控制台中具有 [1]。 我认为 this.var2 = this.var1;是参考,但我真的需要将 var2 设置为 var1
是的,您通过引用分配它。您需要改为复制数组。我稍微修改了你的代码。
var obj = {
var1:[],
var2:[],
set1: function(){
this.var1.push(1);
},
set2 : function(){
this.var2 = this.var1.slice()
}
};
obj.set1();
obj.set2();
obj.set1();
console.log(obj.var2);
array.slice() 方法将 return 一个具有相同值的新数组。