JSFiddle - React, Tailwind, and code Playground

JavaScript

Object._clone = function(obj) {
  var clone, property, value;
  if (!obj || typeof obj !== 'object') {
    return obj;
  }
  clone = typeof obj.pop === 'function' ? [] : {};
  clone.__proto__ = obj.__proto__;
  for (property in obj) {
    if (obj.hasOwnProperty(property)) {
      value = obj.property;
      if (value && typeof value === 'object') {
        clone[property] = Object._clone(value);
      } else {
        clone[property] = obj[property];
      }
    }
  }
  return clone;
};

function Value(value) {
    this.get = function () {
        alert(value);
    };
    this.set = function (newValue) {
        value = newValue;
    };
}

var a = new Value(5);
var b = Object._clone(a);
b.set(10);
a.get();