:) 在这里我创建了 3 个对象:
let user = { who: "God", age: 13759613215 };
let obj1 = { someKey1: "dsvygsd" };
let obj2 = { someKey2: "sdvtglmha" };
复制属性 obj1 和 obj2 以及用户。
Object.assign( user, obj1, obj2 );
我通过警报调用键。
for (let key in user) {
alert(key);
}
好吧,弹出窗口按顺序显示它们:谁,年龄,someKey1,someKey2。
所以我把方括号放在这里
Object.assign( user, [obj1, obj2] );
现在循环
for (let key in user) {
alert(key);
}
给我:0、1、谁、年龄。为什么有 0 和 1?
因为
[obj1, obj2]是索引为 0 和 1 的数组。根据帮助:传递的第一个参数是要添加属性的目标对象,所有其他参数都是要添加属性的对象。
什么时候
传递了三个参数:
什么时候
传递了两个参数:
由于源是一个数组,它的属性
0和1对应于数组的每个元素都被添加到目标对象中。javascript 中的数组也是键为数字的对象,即 entry
[obj1, obj2]几乎等同于 entry{"0": obj1, "1": obj2},当您尝试连接用户对象和数组[obj1, obj2]时,您实际上是在尝试使用键“0”和“1”连接用户和另一个对象