解决循环引用,我们需要使用Set或者Map或者WeekMap类型来保存对象之间的引用关系。话不多说,直接加上代码:hash=newMap()){if(!isObject(source))返回源;如果(hash.has(source))returnhash.get(source);vartarget=Array.isArray(source)?[]:{};hash.set(源,目标);for(varkeyinsource){if(Object.prototype.hasOwnProperty.call(source,key)){if(isObject(source[key])){target[key]=cloneDeep(source[key],hash);}else{目标[键]=源[键];}}}returntarget;}其实浏览器也有解决方案,只是没有正式发布
