Skip to content

Instantly share code, notes, and snippets.

@siddharth-sunchu
Created June 26, 2021 22:52
Show Gist options
  • Save siddharth-sunchu/987d43d179e72c7667aca51cd031df2d to your computer and use it in GitHub Desktop.
Save siddharth-sunchu/987d43d179e72c7667aca51cd031df2d to your computer and use it in GitHub Desktop.
const employee = {
name: 'Siddharth',
age: 35,
salary: {
annual: '100K',
hourly: '$50'
}
};
const copyOfEmployee = Object.assign({}, employee);
console.log('employee => ', employee);
console.log('copyOfEmployee => ', copyOfEmployee);
/*
employee => {
name: 'Siddharth',
age: 35,
salary: { annual: '100K', hourly: '$50' }
}
copyOfEmployee => {
name: 'Siddharth',
age: 35,
salary: { annual: '100K', hourly: '$50' }
}
*/
console.log('------------After Modification-----------');
copyOfEmployee.name = 'Elon Musk';
copyOfEmployee.salary.annual = '120K';
/*
Here you would expect employee object wouldn't change, but copyOfEmployee
and employee object both share same memory address
*/
console.log('employee => ', employee);
console.log('copyOfEmployee => ', copyOfEmployee);
/*
------------After Modification-----------
employee => {
name: 'Siddharth',
age: 35,
salary: { annual: '120K', hourly: '$50' }
}
copyOfEmployee => {
name: 'Elon Musk',
age: 35,
salary: { annual: '120K', hourly: '$50' }
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment