JSFiddle - React, Tailwind, and code Playground
HTML
<body id="body">
</body>
JavaScript
function cloneObject(source) {
var key,value;
var clone = Object.create(source);
for (key in source) {
if (source.hasOwnProperty(key) === true) {
value = source[key];
if (value!==null && typeof value==="object") {
clone[key] = cloneObject(value);
} else {
clone[key] = value;
}
}
}
return clone;
}
function out(str) {
document.getElementById('body').innerHTML += str + "<br>";
}
var SomeObj = function () {
var obj = {
_val: 0,
set val(value) {
out("Set: " + value);
this._val = value;
},
get val() {
return this._val;
}
}
return obj;
};
var sObj = {
type : 'some',
o : new SomeObj(),
id : 900
};
sObj.o.val = 100;
var sCopy = cloneObject(sObj);
sCopy.o.val = 200;
out(sObj.o.val);