Deep object clone

javascript

другие самплы
class A {
    a = {
        b: 1
    }
}


const isObject = (val) => val?.__proto__ === Object.prototype;

function deepClone(obj) {
    if (!isObject(obj)) throw new Error("Must be object");

    return Object.entries(obj).reduce((acc, [prop, value]) => {
        acc[prop] = isObject(value) ? deepClone(value) : value;
        return acc;
    }, {});
}

let a = new A()
let aa = deepClone(a)

a.a.b = 2
console.log(aa.a.b)

/// output:


// Error: Must be object
(ваш голос учтен)

Прикрепить файл