في عالم يفقد السيطرة 🌀 عالم البرمجة لك

borma logo
person




🎯 إيه هي Higher-Order Functions؟ وليه تعتبر من أقوى مميزات JavaScript؟ وإزاي تستخدمها صح؟

كل ده هنعرفه بالتفصيل مع أمثلة عملية وتطبيقات حقيقية في محاضره النهارده…

📌 1- يعني إيه Higher-Order Function؟

Higher-Order Function (HOF) هي أي فانكشن بتعمل واحدة من الحاجتين دول:

  • بتاخد فانكشن تانية كـ Parameter
  • بترجع فانكشن جديدة كـ Output

ببساطة الفانكشن دي بتعامل الفانكشن التانية كأنها بيانات عادية

مثال سريع قبل ما ندخل في الجد 👀

🔹 Output:

هنا higherOrderFunction أخدت فانكشن callback كـ Argument ونفذتها جوه

 

📌 2- أشهر Higher-Order Functions في JavaScript

JavaScript فيها مجموعة جبارة من الـ HOFs الجاهزة وبتستخدمها يوميا:

🟢 map() – تحويل كل عنصر في المصفوفة لشيء جديد

map() بتاخد فانكشن وتطبقها على كل عنصر في المصفوفة وترجع مصفوفة جديدة

 

🟢 filter() – تصفية العناصر اللي تحقق شرط معين

filter() بترجع فقط العناصر اللي بتتحقق فيها الشرط اللي في الـ Callback

🟢 reduce() – تنفيذ عملية حسابية على كل العناصر

reduce() بتاخد كل القيم في المصفوفة وتجمعهم أو تعمل عليهم أي عملية حسابية.

 

🟢 forEach() – تنفيذ كود على كل عنصر بدون إرجاع قيمة جديدة

forEach() بتستخدم لو عايز تنفذ كود على كل عنصر، لكن من غير ما ترجع مصفوفة جديدة.

 

📌 3- كتابة ال Higher-Order Function بنفسك

خلينا نكتب HOF بنفسنا حاجة زي multiplyBy اللي بتاخد رقم وترجع فانكشن تضرب بيها أي قيمة

لاحظ إن multiplyBy رجعت فانكشن تانية وده اللي بيخليها Higher-Order Function

 

📌 4- إمتى تستخدم Higher-Order Functions؟

  • لما يكون عندك عمليات متكررة، وتحتاج تبسط الكود وتخليه أكثر مرونة.
  • لما تشتغل بأسلوب Functional Programming وتستخدم Callbacks
  • لما تحتاج إعادة استخدام الأكواد بدل ما تكتب نفس الفانكشن كذا مرة

🎯 تـــاســك عــمــلــي

🔹 المطلوب:

  • استخدم map() عشان تحول Array من الأرقام إلى مربعاتها.
  • استخدم filter() عشان تجيب الأرقام الأكبر من 10 من Array.
  • اكتب Higher-Order Function اسمها powerOf تاخد رقم وترجع فانكشن ترفعه للأس.

 📢 متنساش تسيب حلك في الكومنتات

قسم التعليقات