حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش جاوااسکریپت تکمیلی؛ توابع و پردازش داده

تکمیل const در جاوااسکریپت؛ تغییر موجودی یک شیء

دامنه متغیرها در جاوااسکریپت و خطاهای scope · 0٪

✍️ 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 هم عدد برگشتی و هم موجودی همان شیء ورودی را بررسی می‌کند؛ آن را تغییر نده.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

function restock(product, amount) {
  const item = product;
  // TODO: موجودی را افزایش بده و عدد جدید را برگردان.
  return 0;
}
function checkRestock(product, amount) {
  const result = restock(product, amount);
  return {result, stock: product.stock};
}