Shallow Copy and Deep Copy in JavaScript
JavaScript mein, objects aur arrays ko copy karne ke do tareeqe hote hain: shallow copy aur deep copy. Yeh dono tareeqe mukhtalif situations mein use hote hain aur inke kuch unique features hain.
Shallow Copy
Shallow copy sirf object ya array ke top-level elements ko copy karta hai. Agar original object ya array mein nested objects ya arrays hain, to shallow copy mein inka reference hi copy hota hai, na ke actual nested objects.
Code Example:
let originalArray = [1, 2, 3, { a: 1, b: 2 }];
let shallowCopy = [...originalArray];
shallowCopy[3].a = 99;
console.log(originalArray); // Output: [1, 2, 3, { a: 99, b: 2 }]
console.log(shallowCopy); // Output: [1, 2, 3, { a: 99, b: 2 }]
Deep Copy
Deep copy poore object ya array ko copy karta hai, including all nested objects aur arrays. Matlab, deep copy mein, har level par new objects create hote hain aur koi bhi references original object ya array se share nahi hote.
Code Example:
let originalArray = [1, 2, 3, { a: 1, b: 2 }];
let deepCopy = JSON.parse(JSON.stringify(originalArray));
deepCopy[3].a = 99;
console.log(originalArray); // Output: [1, 2, 3, { a: 1, b: 2 }]
console.log(deepCopy); // Output: [1, 2, 3, { a: 99, b: 2 }]
Shallow Copy Banane ke Methods
领英推荐
let shallowCopy = [...originalArray];
let shallowCopy = Object.assign({}, originalObject);
Deep Copy Banane ke Methods
let deepCopy = JSON.parse(JSON.stringify(originalObject));
let _ = require('lodash');
let deepCopy = _.cloneDeep(originalObject);
Conclusion
Shallow copy aur deep copy ka samajhna zaroori hai jab aap JavaScript mein objects aur arrays ke saath kaam kar rahe hote hain. Shallow copy tezi se kaam karta hai, lekin nested objects ko theek tarah se handle nahi karta. Deep copy zyada reliable hai, lekin yeh slow ho sakta hai agar aapke paas bahut zyada nested objects hon. Dono tareeqon ko use karna specific scenario par depend karta hai.