基础版(不能解决循环引用)
基础版
function deepClone(obj){
// 如果参数为空则直接返回,如果为日期/正则 则也直接返回;
if( obj == null ) return obj;
if( obj instanceof Date ) return new Date(obj);
if( obj instanceof RegExp ) return new RegExp(obj);
if(typeof obj !== 'object') return obj;
let cloneObj = new obj.constructor; // 此时是为了获取 obj 的类型, 并且可以根据类型来新建相应的拷贝对象;
// 根据上文的对象类型,来进行填充;
for(let key in obj){
if(obj.hasOwnProperty(key)){
// 过滤掉对象元属性上面的属性;
cloneObj[key]