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 一个具有相同值的新数组。