<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های شایان</title><link>https://virgool.ir/feed/@shayan_init4</link><description></description><language>fa</language><pubDate>2026-11-12 04:26:00</pubDate><image><url>https://files.virgool.ir/upload/users/1515471/avatar/69MXmO.jpg</url><title>شایان</title><link>https://virgool.ir/@shayan_init4</link></image><item><title>تفاوت shallow Copy و deep Copy در جاوااسکریپت</title><link>https://virgool.ir/@shayan_init4/تفاوت-shallow-copy-و-deep-copy-در-جاوااسکریپت-qj0zveyaknz2</link><description>سلامیکی از سوالایی که معمولا توی مصاحبه فرانت میپرسند تفاوت shallow copy و deep copy هستش.بدون مقدمه بریم سر اصل مطلبیک - shallow copy چیست ؟ فرض کنید داخل متغیر A یک دیتایی با تایپ object داریم . متغیر B هم برابر متغیر A قرار میدیم.حالا اگه ما دیتای هر کدوم رو تغییر بدیم ، دیتای اون یکی هم تغییر میکنه.در واقع با تغییر هر کدوم دیتای جفتشون تغییر میکنه که این باعث ناهماهنگی داده ها میشود . به نوعی این دو شی به همدیگه وابسته هستند.اما دلیلیش : به این خاطر هستش شی تازه ایجاد شده (B) توی حافظه (Memory) ، همون آدرس حافظه قبلی رو داره.به این پروسه میگن shllow copyحالا راه حل   دو - استفاده از deep copyبر خلاف shallow copy ، توی این یکی ، یک مکان حافظه جداگانه برای شی جدید اختصاص داده میشود . به همین دلیل در صورت تغییر هر کدوم ، دیگری رو تحت تاثیر قرار نمیذاره . حتی اگه از داده حذف کنیمراه حل های زیاده هست که من 3 تاش رو میگم استفاده از spread operator22. استفاده از Object.assign3. استفاده از JSON.parse و JSON.stringfyمیبینیم خیلی راحت با این 3 روش تونستیم مشکل رو حل کنیمامیدوارم براتون مفید یوده باشه :)</description><category>شایان</category><author>شایان</author><pubDate>Thu, 14 Apr 2022 01:17:47 +0430</pubDate></item></channel></rss>