最简单的支持正则等特殊类型的深拷贝

45 阅读1分钟
function deepClone (data) {
    return new Promise (resolve => {
        const { port1, port2 } = new MessageChannel();
        port1.postMessage (data);
        port2. onmessage = (result) => {
            resolve(result.data)
        }
    })
}
const d1 = { a: 1, b: 2, c: 3 };
(async () => {
    const newdata = await deepClone (d1);
    d1.a = 123;
    console.log(newdata)
})()