✍️ 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.