当前位置: 首页 > Web前端 > JavaScript

深拷贝如何解决循环引用?浏览器有没有提供解决方案

时间:2023-03-27 17:43:02 JavaScript

解决循环引用,我们需要使用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;}其实浏览器也有解决方案,只是没有正式发布