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
(ваш голос учтен)