<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>ES6</title> </head> <body> <!-- function --> <script> 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 } </script> </body> </html>