在javascript初始化期间重复JSON属性

时间:2014-09-04 11:57:23

标签: javascript json

我可以在javascript初始化期间复制JSON属性,如下例所示

var obj = { 
prop1: {...},
prop2: prop1 
}
编辑:看起来我的数据结构设计得很差,但是下面的解决方案适用于这种情况。

3 个答案:

答案 0 :(得分:0)

你不能一步到位,你必须这样做:

var obj = { 
  prop1: {...}
};

obj.prop2 = obj.prop1;

注意obj.prop2obj.prop1在这种情况下引用相同的对象。

答案 1 :(得分:0)

另一个解决方法是添加prop2并将其声明为undefined,然后在对象上添加一个setProp函数,可以为你设置属性。

var obj = {
    prop1: {someValues: [], someValue: {}},
    prop2: undefined,
    setProp2: function(){
        this.prop2 = this.prop1;
    }
};

也许您可以创建一个小函数来创建对象的实例并调用setProp2?

不确定这是你所追求的。如果您可以提供您想要使用的内容,那么提供不同的方法可能会更容易。

答案 2 :(得分:0)

为什么你会想象prop1中的prop2: prop1除了变量prop1的值之外还有什么意义?对象不是函数。对象属性不是函数变量。

你可以尝试prop2: this.prop1,但这会背叛对this含义的根本误解。请参阅Self-references in object literal declarations

如果要将两个属性设置为相同的值,则只需执行以下操作:

var obj = (function() {
  var prop1 = {someValues: [], someValue: {}};
  return {
    prop1: prop1,
    prop2: prop1
  };
}());