✍️ const جلوی اتصال دوباره یک نام به مقدار دیگری را میگیره؛ قرار نیست همه چیز داخل یک شیء را قفل کنه. اگر یک کالا با const تعریف شده، هنوز میتونی ویژگی موجودی آن را تغییر بدی. این تفاوت وقتی مهم میشه که تابعی، همان کالای ورودی را بهروزرسانی میکنه و عدد جدید را برمیگردونه.
مثلاً اگر کیف پول {balance: 30} داشته باشیم، اجرای wallet.balance += 5 موجودی را به ۳۵ میرسونه. ولی wallet = {balance: 35} برای نامی که با const تعریف شده مجاز نیست. در تمرین این گام، عمداً تغییر شیء ورودی خواسته شده؛ بعداً روش نگه داشتن نسخه اصلی را جدا تمرین میکنیم.
تابع را طوری کامل کن که به موجودی فعلی اضافه کنه، نه اینکه مقدار قبلی را دور بریزه. مقدار افزایش میتونه صفر باشه؛ صفر یعنی هیچ کالایی اضافه نشده. خطای رایج، جایگزین کردن موجودی با مقدار افزایش یا تصور تغییرناپذیر بودن خود شیء است. پاسخ تابع باید یک عدد باشه، نه کل کالا.
فعالیت شما
restock(product, amount) را کامل کن. product شیئی با stock عدد صحیح نامنفی و amount عدد صحیح نامنفی است. stock همان شیء را به اندازه amount افزایش بده و stock جدید را برگردان؛ مثلاً ({stock:4},3) برابر 7 و افزایش صفر بدون تغییر است. تابع کمکی آماده checkRestock هم عدد برگشتی و هم موجودی همان شیء ورودی را بررسی میکند؛ آن را تغییر نده.