在声明对象时将一个对象 属性 值赋给另一个 属性
Assign an object property value to another property while declaring the object
我有以下 Javascript 代码:
var container = {
first: {
a: 1,
b: 'someString'
},
second: Object.assign({
c: 34,
d: 'something else'
},
this.first
)
}
console.log(container)
这会打印:
{ first: { a: 1, b: 'someString' },
second: { c: 34, d: 'something else' } }
不过,我希望它是:
{ first: { a: 1, b: 'someString' },
second: { c: 34, d: 'something else', a: 1, b: 'someString'} }
所以我希望 first
中的所有(键,值)对也出现在 second
中。怎么做到的?
您不能在对象存在之前引用它,而这正是您想要做的。但是你可以这样做:
var first = {
a: 1,
b: 'someString'
};
var container = {
first: first,
second: Object.assign({
c: 34,
d: 'something else'
},
first
)
}
console.log(container)
问题:
实际上,您正在将 second
的内容分配给 undefined
,因为当时您正试图在分配时引用 first
属性 , 它在您的 container
对象中尚不存在。
解法:
您需要在赋值之前将 first
属性 的内容存储在 object
中,或者仅使用 first
[创建 container
对象=44=] 然后定义 container.second
属性 以获得 first
值与 second
值的组合。
这怎么可能是你的代码:
var container = {
first: {
a: 1,
b: 'someString'
}
};
container.second = Object.assign({
c: 34,
d: 'something else'
},
container.first
);
console.log(container)
您可能正在寻找这个。
var a = new function(){
this.b = {name:"Vignesh",place:"India"};
this.c = {name:"Vijay",place:"TamilNadu",b:this.b};
this.d = {name:"Vijay Sethupathi",place:"Namakkal",c:this.c};
}();
console.log(a);
var container = {
first: {
a: 1,
b: 'someString'
}
}
container.second = Object.assign(
{
c: 34,
d: 'Something else'
},
container.first
)
我有以下 Javascript 代码:
var container = {
first: {
a: 1,
b: 'someString'
},
second: Object.assign({
c: 34,
d: 'something else'
},
this.first
)
}
console.log(container)
这会打印:
{ first: { a: 1, b: 'someString' },
second: { c: 34, d: 'something else' } }
不过,我希望它是:
{ first: { a: 1, b: 'someString' },
second: { c: 34, d: 'something else', a: 1, b: 'someString'} }
所以我希望 first
中的所有(键,值)对也出现在 second
中。怎么做到的?
您不能在对象存在之前引用它,而这正是您想要做的。但是你可以这样做:
var first = {
a: 1,
b: 'someString'
};
var container = {
first: first,
second: Object.assign({
c: 34,
d: 'something else'
},
first
)
}
console.log(container)
问题:
实际上,您正在将 second
的内容分配给 undefined
,因为当时您正试图在分配时引用 first
属性 , 它在您的 container
对象中尚不存在。
解法:
您需要在赋值之前将 first
属性 的内容存储在 object
中,或者仅使用 first
[创建 container
对象=44=] 然后定义 container.second
属性 以获得 first
值与 second
值的组合。
这怎么可能是你的代码:
var container = {
first: {
a: 1,
b: 'someString'
}
};
container.second = Object.assign({
c: 34,
d: 'something else'
},
container.first
);
console.log(container)
您可能正在寻找这个。
var a = new function(){
this.b = {name:"Vignesh",place:"India"};
this.c = {name:"Vijay",place:"TamilNadu",b:this.b};
this.d = {name:"Vijay Sethupathi",place:"Namakkal",c:this.c};
}();
console.log(a);
var container = {
first: {
a: 1,
b: 'someString'
}
}
container.second = Object.assign(
{
c: 34,
d: 'Something else'
},
container.first
)