我可以在javascript初始化期间复制JSON属性,如下例所示
var obj = {
prop1: {...},
prop2: prop1
}
编辑:看起来我的数据结构设计得很差,但是下面的解决方案适用于这种情况。
答案 0 :(得分:0)
你不能一步到位,你必须这样做:
var obj = {
prop1: {...}
};
obj.prop2 = obj.prop1;
注意obj.prop2
和obj.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
};
}());