我可以在初始化过程中重复的JSON属性在JavaScript中像下面重复JSON财产
var obj = {
prop1: {...},
prop2: prop1
}
编辑例如:看起来像我的数据结构首先设计不当,但下面的工作方案在这种情况下。
我可以在初始化过程中重复的JSON属性在JavaScript中像下面重复JSON财产
var obj = {
prop1: {...},
prop2: prop1
}
编辑例如:看起来像我的数据结构首先设计不当,但下面的工作方案在这种情况下。
你不能做到一步到位,你有做:
var obj = {
prop1: {...}
};
obj.prop2 = obj.prop1;
注obj.prop2
和obj.prop1
裁判在这种情况下,同一个对象。
另一个解决方法是添加prop2并将其声明为undefined,然后在您的对象上添加一个setProp函数,以便为您设置属性。
var obj = {
prop1: {someValues: [], someValue: {}},
prop2: undefined,
setProp2: function(){
this.prop2 = this.prop1;
}
};
也许你可能做一个小的函数来创建对象的实例并调用setProp2?
不确定这是你以后的样子。如果您可以提供您想要的用途,那么提供不同的方法可能会更容易。
为什么你会想象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
};
}());