- DOCTYPE html>
-
-
-
-
ES6 -
-
- function deepClone(origin,hasMap=new WeakMap()){
- if(origin==undefined&&typeof origin!=="object"){
- return origin;
- }
- if(origin instanceof Date){
- return new Date(origin)
- }
- if(origin instanceof RegExp){
- return new RegExp(origin)
- }
- const hashKey=hasMap.get(origin)
- // const target = new origin.constructor();
- if(hashKey){
- return hashKey
- }
- hasMap.set(origin,target)
- for(let k in origin){
- if(origin.hasOwnProperty(k)){
- target[k]=deepClone(origin[k],hasMap)
- }
- }
- return target
- }
-