JSFiddle - React, Tailwind, and code Playground

by kentaromiura

JavaScript

function copy(obj){
    var create = Object.create || function create(proto){
        var f = function(){}
        f.prototype = proto
        return new f()
    }
    var gPO = Object.getPrototypeOf || function(obj){
        return obj.__proto__ || obj.constructor.prototype
    }
    var _copy_ = create(gPO(obj));
    for(var key in obj){
        var value = obj[key]
        _copy_[key] = value && typeof value === 'object'? copy(value) : value
    }
    return _copy_
}

original = {
    obj: {
        arr: [{foo:1},{bar:2}]
    }
}

var _copy_ = copy(original)
original.obj.arr.push({baz:3})
original.obj = {foo:'bar'}

console.log(_copy_)