Object.assign查询

let user = { name: "Nasir", age: 25 };
let employee = Object.assign( {}, user, { add: "dhaka", age: 35 } );

console.log( user ); //{ name: 'Nasir', age: 25 }
console.log( employee ); // { name: 'Nasir', age: 35, add: 'dhaka' }

//------------------------------------------//

let user1 = { name: "ahmed" };
let employee1 = Object.assign( user1, { permission: "can edit" } );

console.log( user1 ); // { name: 'ahmed', permission: 'can edit' }
console.log( employee1 ); //{ name: 'ahmed', permission: 'can edit' }

为什么user1对象获取属性:permission

我将user1对象属性复制到employee1并添加了其他属性permission,所以permission应该只在employee1对象上找到,而不是在user1.

请指导我,我错过了什么?

回答

因为,Object.assign()has 语法,Object.assign(target, source)所以您user1用作目标。因此,使用空对象{}作为目标,以便对象合并到该目标中并且user1对象不会更改。

let user1 = {
  name: "ahmed"
};
let employee1 = Object.assign({}, user1, {
  permission: "can edit"
});
console.log(user1); // { name: 'ahmed' }
console.log(employee1); //{ name: 'ahmed', permission: 'can edit' }

您甚至可以使用传播语法来实现这一点:

let user1 = {
  name: "ahmed"
};
let employee1 = {
  ...user1,
  ...{ permission: "can edit" }
}
console.log(user1); // { name: 'ahmed' }
console.log(employee1); //{ name: 'ahmed', permission: 'can edit' }


以上是Object.assign查询的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>