值得庆幸的是structuredClone在所有主流浏览器中都受支持,也支持 Node.js 和 Deno。 结语 我们现在终于可以直接使用原生 JavaScript 中的structuredClone能力实现深度拷贝对象。每种方式都有其优缺点,具体使用方式取决于你的需求和目标对象的类型。
constobj={func:function(){return"I'm a function";},// 函数symbol:Symbol('uniqueSymbol'),// SymbolweakMap:newWeakMap(),// WeakMapweakSet:newWeakSet(),// WeakSetelement:document.createElement('div')// HTMLElement};// 尝试克隆对象try{constclonedObj=structuredClone(obj);console.log(clonedObj...
function deepClone(obj) { return _.cloneDeep(obj); } 优点:支持更多类型的对象和库,例如,支持 Proxy 对象。 缺点:会引入依赖导致项目体积增大。 因为这个函数会导致17.4kb的依赖引入,如果只是引入lodash会更高。 4. 现代深拷贝structuredClone 在现代浏览器中,可以使用structuredClone方法来实现深拷贝,它是一种更...
使用structuredClone() constoriginal = {name:"Alice",greet:() =>"Hello!",value:undefined};constclone =structuredClone(original);console.log(clone.greet);// undefinedconsole.log(clone.value);// undefined structuredClone()也不克隆函数,但保留了undefined值,使其比JSON.stringify()更可靠,适用于复杂对象。
structuredClone 闪耀登场~ 很多人会用 JSON.parse(JSON.stringify(obj))来对对象进行深拷贝操作,但是这个方式缺点太多了。 原生的深拷贝~ 分享一个 JavaScript 原生的深拷贝方法 structuredClone,其实这个方法出了很久了,但是存在感一直很低~ 图片 说这个方法前,我们先来讨论一下,常见的深拷贝都有哪些方案呢?
在现代浏览器中,可以使用structuredClone方法来实现深拷贝,它是一种更高效、更安全的深拷贝方式。 以下是一个示例代码,演示如何使用structuredClone进行深拷贝: const kitchenSink = { set: new Set([1, 3, 3]), map: new Map([[1, 2]]), regex: /foo/, ...
structuredClone(value) structuredClone(value, { transfer }) 2.2. 参数 value:被克隆的对象 transfer:可转移的数组 2.3. 返回值 返回值是原始值的深拷贝 2.4. 如果输入值的任一部分不可序列化,则抛出DataCloneError异常 3. 用法 3.1. 普通用法 const obj = { ...
现在,这一切都因新的structuredClone()而改变了——它是一种简单高效的方法,可以深度复制任何对象。 const obj = { name: 'Tari', friends: [{ name: 'Messi' }] }; const clonedObj = structuredClone(obj); console.log(obj.name === clonedObj); // false ...
它实际上是一个很棒的工具,性能令人惊讶,但也有一些structuredClone可以解决的缺点。 举个例子: 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 constcalendarEvent={title:"前端修罗场",date:newDate(123),attendees:["Steve"]}constproblematicCopy=JSON.parse(JSON.stringify(calendarEvent)) ...
我们现在终于可以直接使用原生JavaScript中的structuredClone能力实现深度拷贝对象。每种方式都有其优缺点,具体使用方式取决于你的需求和目标对象的类型。 在JavaScript中,实现深拷贝的方式有很多种,每种方式都有其优点和缺点。今天介绍一种原生JavaScript提供的structuredClone实现深拷贝。