تفاوت ميان Shallow و Deep کپي

به نام خدا با سلام خدمت کد ایتی های عزیز. در ادامه سری مقالات اموزشی جاوا اسکریپت این جلسه به تفاوت ميان Shallow و Deep کپي  در جاوا اسکريپت خواهيم پرداخت با ما همراه باشید.

تفاوت ميان Shallow و Deep کپي در چيست؟

Deep copy and Shallow copy in javascript

تفاوت ميان Shallow و Deep کپي

Shallow Copying

پی کم عمق یه کپی بیتی از یه آبجکته. یه آبجکت جدید ایجاد می‌شه که یه کپی دقیق از مقادیر موجود در آبجکت اصلی رو داره. اگه هر یه از فیلدهای آبجکت ارجاع به آبجکت‌های دیگه باشه، فقط آدرس‌های مرجع کپی میشن یعنی فقط آدرس توی حافظه کپی می‌شه.

برای ایجاد یه نسخه تکراری

اگه مقداری از ویژگی رو تو یه تکراری به این صورت تغییر بدیم:

دستور بالا همچنین نام ‍empDetails رو تغییر میده، چون ما یه کپی کم عمق داریم. یعنی ما داده‌های اصلی رو هم از دست می دیم.

کپی عمیق(Deep)

یه کپی عمیق همه فیلدها رو کپی میکنه و از حافظه تخصیص یافته به صورت پویا که توسط فیلدها به آن اشاره می‌شه کپی میکنه.  کپی عمیق زمانی اتفاق میوفته که یه آبجکت همراه با پراپرتی‌هایی که به اون اشاره داره کپی شه.

یه کپی عمیق با استفاده از خواص از آبجکت اصلی در متغیر جدید ایجاد کنیم:

اگه ‍‍empDetailsDeepCopy.name رو تغییر بدین، فقط empDetailsDeepCopy و نه empDetails رو تحت تأثیر قرار میده.

خب دوستان عزيز به پايان جلسه تفاوت بين Shallow و Deep کپي در جاوا اسکريپت رسيديم اميدواريم اين مقاله براي شما مفيد واقع شده باشد.

ساير مقالات:

 

 

 

 

 

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
اشتراک‌گذاری

علی فرجی هستم، برنامه نویس جاوا اسکریپت و ریکت با بیش از 5 سال تجربه. من عاشق برنامه نویسیم و همیشه به دنبال یادگیری چیزهای جدید هستم.همچنین یکی از بنیانگذار های سایت کدایت ، یک سایت آموزش برنامه نویسی در حوزه جاوا اسکریپت، ریکت، اندروید و ... هستم. امیدوارم بتوانم با دانش و تجربه خود به سایر برنامه نویسان کمک کنم تا در این زمینه پیشرفت کنند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *