Description: This method manually creates a deep copy of an object using a recursive function to handle nested objects.
Example:
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (Array.isArray(obj)) {
const arrCopy = [];
for (let i = 0; i < obj.length; i++) {
arrCopy[i] = deepClone(obj[i]);
}
return arrCopy;
}
const objCopy = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
objCopy[key] = deepClone(obj[key]);
}
}
return objCopy;
}
const original = {
name: 'Max',
age: 6,
color: 'black',
nested: {
a: 1,
b: 2
}
};
const copy = deepClone(original);
console.log(copy); // Output: { name: 'Max', age: 6, color: 'black', nested: { a: 1, b: 2 }}
copy.nested.b = 20;
console.log(original.nested.b); // Output: 2 (original nested object is not affected)