"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > نسخة ضحلة مقابل نسخة عميقة من الكائنات في JavaScript

نسخة ضحلة مقابل نسخة عميقة من الكائنات في JavaScript

تم النشر بتاريخ 2024-11-08
تصفح:773

Shallow vs Deep Copy of Objects in JavaScript

عندما نحتاج إلى نسخ كائن إلى كائن آخر، نستخدم بشكل عام شيئًا مثل هذا:


const mainObject = { id: 1 };
const secondaryObject = { ...mainObject };


ولكن هذا يعمل فقط لنسخ الخصائص الضحلة للكائن. إذا كانت لدينا حالة مثل الكود التالي، يتغير السيناريو:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const secondaryObject = { ...mainObject };


لن يتم نسخ مستخدم الخاصية؛ سيظل مرتبطًا بـ mainObject. لذلك، إذا قمنا بتغيير خاصية المستخدم، فسوف يؤثر ذلك أيضًا على الكائن الرئيسي. لحل هذه المشكلة يمكننا القيام بما يلي:


const mainObject = { id: 1, user: { name: 'John Doe', age: 30 } };
const deepCopy = JSON.parse(JSON.stringify(mainObject ));


الآن، لدينا نسخة عميقة من mainObject، مع عنوانين مميزين للذاكرة.

بيان الافراج هذه المقالة مستنسخة على: https://dev.to/claudioguedes/shallow-vs-deep-copy-of-objects-in-javascript-3d2o?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3