JavaScript Object set / get参数

时间:2015-10-30 12:31:59

标签: javascript object 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

1 个答案:

答案 0 :(得分:2)

是的,您可以通过引用分配它。您需要复制数组。我稍微修改了你的代码。



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()方法将返回一个具有相同值的新数组。