主要观点总结
文章介绍了structuredClone()这个新方法在JavaScript中的用途和优势,它解决了深度复制对象的痛点,并能轻松处理循环引用。文章还提到了structuredClone()的一些限制,如无法克隆函数或方法、DOM元素和RegExp的lastIndex属性等。
关键观点总结
关键观点1: structuredClone()的用途和优势
structuredClone()是一种简单高效的方法,可以深度复制任何对象,解决了一直以来没有内置的完美深度复制对象的方法的问题。
关键观点2: structuredClone()处理循环引用的能力
structuredClone()能够轻松克隆包含循环引用的对象。
关键观点3: structuredClone()的限制
structuredClone()有一些重要弱点,如无法克隆函数或方法、DOM元素,不保留RegExp的lastIndex属性等。
关键观点4: 关于部分克隆和部分移动的复杂情况
使用structuredClone()时,存在将内部对象从源对象转移到克隆对象的情况,而不是进行复制。
文章预览
作者 | dev 来源 | 大迁世界 深拷贝是传递或存储数据时的一项常规编程任务。 浅拷贝:只复制对象的第一层 深拷贝:复制对象的所有层级 const obj = { name: 'Tari' , friends: [{ name: 'Messi' }] }; const shallowCopy = { ...obj }; const deepCopy = dCopy(obj); console.log(obj.friends === shallowCopy.friends); // ❌ true console.log(obj.friends === deepCopy.friends); // ✅ false 但一直以来,我们都没有一种内置的方法来完美地深度复制对象,这一直是一个痛点。 我们总是不得不依赖第三方库来进行深度复制并保留循环引用。 现在,这一切都因新的 structuredClone() 而改变了——它是一种简单高效的方法,可以深度复制任何对象。 const obj = { name: 'Tari' , friends: [{ name: 'Messi' }] }; const clonedObj = structuredClone(obj); console.log(obj.name === clonedObj); // false console.log(obj.friends === clo
………………………………