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

رفع باگ callback در جاوااسکریپت؛ اجرای تابع ورودی

توابع پیکانی و callback در جاوااسکریپت · 0٪

✍️ callback یعنی تابعی که به تابع دیگری می‌دیم تا در مرحله مناسب اجراش کنه. لازم نیست این اجرا دیرتر یا روی شبکه انجام بشه؛ اینجا همه چیز هم‌زمان است. یک تابع عمومی می‌تونه مقدار را بگیره، callback را روی آن اجرا کنه و نتیجه را برگردونه.

مثلاً تابع بسته‌بندی متن می‌تونه یک نام و یک تابع تزئین بگیره. اگر تزئین text => '[' + text + ']' باشه، خروجی نام داخل کروشه قرار می‌گیره. وظیفه تابع عمومی اینه که callback را صدا بزنه؛ برگرداندن ورودی خام باعث می‌شه هیچ تبدیلی انجام نشه، هرچند برنامه خطای نحوی ندارد.

در این تمرین، helper به نام apply محل اصلی باگ است. رفتارهای افزایش و دو برابر کردن از قبل تعریف شده‌اند؛ لازم نیست داخل helper نام حالت‌ها را بررسی کنی. این جداسازی اجازه می‌ده بعداً رفتار دیگری هم بدون تغییر helper اضافه بشه. خطای رایج، نوشتن return value در جاییه که باید نتیجه callback(value) برگرده. صفر را هم مثل هر عدد دیگری پردازش کن.

فعالیت شما

runAdjustment(value, mode) و helper آن را کامل کن. value عدد متناهی است؛ mode فقط 'inc' یا 'double' است. callback باید روی value اجرا شود؛ (6,'inc') => 7، (6,'double') => 12 و (0,'inc') => 1.

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

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

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

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

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

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

function apply(value, callback) {
  // TODO: نتیجه اجرای callback را برگردان.
}
function runAdjustment(value, mode) {
  const callback = mode === 'inc' ? x => x + 1 : x => x * 2;
  return apply(value, callback);
}