JSFiddle - React, Tailwind, and code Playground
JavaScript
function clone(object) {
if (object instanceof Date) {
var clone = new Date();
clone.setFullYear(object.getFullYear());
clone.setMonth(object.getMonth());
clone.setDate(object.getDate());
clone.setHours(object.getHours());
clone.setMinutes(object.getMinutes());
clone.setSeconds(object.getSeconds());
clone.setMilliseconds(object.getMilliseconds());
} else if (object instanceof RegExp) {
var clone = new RegExp;
} else if (object instanceof Error) {
var clone = new Error();
} else if (object instanceof Array) {
var clone = [];
} else if (object instanceof Function) {
var clone = object.bind(clone);
} else {
var clone = {};
}
clone.length = object.length;
clone.name = object.name;
for (property in object) {
if (object.hasOwnProperty(property)) {
clone[property] = object[property];
}
}
return clone;
}
var a = { x: 1, y: 2, z: [1, 2, 3] };
var b = clone(a);
b.x = 10;
console.log(a.x);
b.z.push(4);
console.log(a.z);
var c = new Date(2014, 1, 1);
var d = clone(c);
d.setFullYear(2015);
console.log(c.getFullYear());
console.log(c);
console.log(d);