2014-09-04 45 views
0

我可以在初始化过程中重复的JSON属性在JavaScript中像下面重复JSON财产

var obj = { 
prop1: {...}, 
prop2: prop1 
} 

编辑例如:看起来像我的数据结构首先设计不当,但下面的工作方案在这种情况下。

回答

0

你不能做到一步到位,你有做:

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

obj.prop2 = obj.prop1; 

obj.prop2obj.prop1裁判在这种情况下,同一个对象。

0

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

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

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

不确定这是你以后的样子。如果您可以提供您想要的用途,那么提供不同的方法可能会更容易。

0

为什么你会想象prop1prop2: prop1会有任何意义,而不是变量prop1,它不存在的价值?一个对象不是一个函数。对象属性不是函数变量。

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

如果你想两个属性设置为相同的值,那么就这样做:

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