// copies all properties from permissions1 and permissions2 into user
Object.assign(user,permissions1,permissions2);
// now user = { name: "John", canView: true, canEdit: true }
returnuser;
}
overwritten_existed_property={
letuser={name:"John"};
// overwrite name, add isAdmin
Object.assign(user,{name:"Pete",isAdmin:true});
// now user = { name: "Pete", isAdmin: true }
returnuser;
}
clone_without_loop={
letuser={
name:"John",
age:30
};
letclone=Object.assign({},user);
returnclone;
}
subObj_referenced_objAssign={
letuser={
name:"John",
sizes:{
height:182,
width:50
}
};
letclone=Object.assign({},user);
// user and clone share sizes
user.sizes.width++;// change a property from one place
return`clone.sizes.width : ${clone.sizes.width}, user.sizes === clone.sizes : ${user.sizes===clone.sizes} )`;// true, same object; // 51, see the result from the other one
}
cloneDeep_lodash={
letuser={
name:"John",
sizes:{
height:182,
width:50
}
};
letclone=_.cloneDeep(user);
// user and clone share sizes
user.sizes.width++;// change a property from one place
return`user.sizes.width : ${user.sizes.width}, clone.sizes.width : ${clone.sizes.width}, user.sizes === clone.sizes : ${user.sizes===clone.sizes} )`;// true, same object; // 51, see the result from the other one
}
_=require("lodash")
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.