make copy of object javascript

JavaScript
var x = {myProp: "value"};
var y = Object.assign({}, x); // es6
const obj = {name: 'john', surname: 'smith'};
const objCopy = {...obj};var x = {key: 'value'}
var y = JSON.parse(JSON.stringify(x))

//this method actually creates a reference-free version of the object, unlike the other methods
//If you do not use Dates, functions, undefined, regExp or Infinity within your objectvar x = {key: 'value'}
var y = JSON.parse(JSON.stringify(x))

//If you do not use Dates, functions, undefined, regExp or Infinity within your object//returns a copy of the object
function clone(obj) {
    if (null == obj || "object" != typeof obj) return obj;
    var copy = obj.constructor();
    for (var attr in obj) {
        if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
    }
    return copy;
}
Source

Also in JavaScript: