function deepClone(obj){
return new Promise((resove)=>{
const {post1,post2} = new MessageChannel();//消息通道 它会分别产生两个端点
post1.postMessage(obj);
post2.onmessage = msg=>{
reslove(msg.data)
}
})
}
deepClone(obj).then(newObj=>{
console.log(newObj)
})
js深度克隆的另一种方式---消息通道MessageChannel
该代码示例展示了如何通过创建MessageChannel来实现对象的深度克隆。它利用了postMessage在不同上下文间传递数据时会进行深拷贝的特性,将对象发送到消息通道的一个端口,然后在另一个端口接收克隆后的对象。

被折叠的 条评论
为什么被折叠?



