code: function(from,to){
            var to = null;
            if(this.isArray(from)) to = [];
            if(this.isObject(from)) to = {};
            if(to) to = to;
  
            this.forEach(from,function cloner(e,i,b){
              if(this.isArray(e)){
               if(!to[i]) to[i] = [];
               this.clone(e,to[i]);
               return;
             }
             if(this.isObject(e)){
               if(!to[i]) to[i] = {};
               this.clone(e,to[i]);
               return;
             }
  
             to[i] = e;
           },this);
            return to;
      }
docs: you can deep clone a object into another object that doesnt have any refernce to any of the values of the old one,incase u dont want to initialize a vairable for the to simple pass a {} or [] to the to arguments it will be returned once finished eg var b = clone(a,{}); or b=clone(a,[]);