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

borma logo
person




Arrow Functions واحدة من أهم الميزات اللي جت مع ES6 وبتخلي كتابة الفانكشن أسرع وأقصر وأسهل

 

لكن فيه اختلافات جوهرية بين الـ Arrow Functions والفانكشن العادية

 

في المحاضره دي هنشرحها بالتفصيل ونشوف إمتى تستخدمها وامتى تتجنبها؟

 

📌 أولًا: الشكل الأساسي للـ Arrow Function

بدل ما تكتب فانكشن بالطريقة التقليدية:

ممكن تكتبها باستخدام الـ Arrow Function بالشكل ده:

 

  • أقصر وأسهل في الكتابة
  • مفيش كلمة function ولا return في الحالة البسيطة
  • بتستخدم السهم => بدل كلمة function

📌 1- حالات مختلفة لاستخدام الـ Arrow Function

(1) لو عندك بارامتر واحد تقدر تشيل الأقواس

(2) لو مفيش بارامترات لازم تحط أقواس فاضية

(3) لو الفانكشن فيها أكثر من سطر، لازم تستخدم {} وكلمة return

 

📌 2- الفرق بين الـ Arrow Functions والفانكشن العادية

الجدول Function Declaration Arrow Function

this Binding

بيكون حسب ال object اللي استدعاها بيكون ثابت وبيشير لنفس السياق اللي اتعرفت فيه

Hoisting

بيتم رفعها للأعلى (متاحة قبل تعريفها) لا يتم رفعها لازم تتعرف الأول

arguments Object

متاحة داخل الفانكشن غير متاحة داخل الـ Arrow Function

الكود

أطول شوية أقصر وأسهل في الكتابة

 

📌 3- this في الـ Arrow Function

الـ this في الـ Arrow Function مش بيتغير حسب الاستدعاء وده فرق كبير

 

🔹 في الفانكشن العادية:

🔹 في الـ Arrow Function:

ليه حصل كده؟ لأن الـ this في الـ Arrow Function بياخد القيمه من الـ Scope اللي اتعرف فيه ومش بيتغير حسب ال object المستدعي.

✅ الحل؟ استخدم Function Declaration في الكائنات بدل الـ Arrow Function

 

📌 4- الـ arguments في الـ Arrow Functions

الـ Arrow Function مش بتوفر arguments Object زي الفانكشن العادية

 

🔹 في الفانكشن العادية:

🔹 في الـ Arrow Function (هتسبب Error)

✅ الحل؟ استخدم الـ Rest Parameters (...args) بدل arguments

 

📌 5- تطبيقات عملية على الـ Arrow Function

1- استخدام الـ Arrow Function معsetTimeout و setInterval

2- استخدام الـ Arrow Function مع المصفوفات (map, filter, reduce)

3- استخدام الـ Arrow Function داخل كائنات مع this (الطريقة الصح)

هنا استخدمنا الـ Arrow Function جوه setTimeout عشان this يفضل يشير للكائن user

 

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

🔹 المطلوب:

  • اكتب فانكشن اسمها getFullName تاخد firstName و lastName وتجمعهم مع بعض باستخدام Arrow Function.
  •  استخدم Arrow Function مع map عشان تحول Array من الأسعار بالدولار إلى الأسعار بالجنيه المصري (مثلا تضربها في 30).
  • اكتب فانكشن جوه كائن، جرب تستخدم Arrow Function جوهها وشوف this هيكون إيه؟

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