Arrow Functions واحدة من أهم الميزات اللي جت مع ES6 وبتخلي كتابة الفانكشن أسرع وأقصر وأسهل
لكن فيه اختلافات جوهرية بين الـ Arrow Functions والفانكشن العادية
في المحاضره دي هنشرحها بالتفصيل ونشوف إمتى تستخدمها وامتى تتجنبها؟
📌 أولًا: الشكل الأساسي للـ Arrow Function
بدل ما تكتب فانكشن بالطريقة التقليدية:
ممكن تكتبها باستخدام الـ Arrow Function بالشكل ده:
- أقصر وأسهل في الكتابة
- مفيش كلمة
function
ولاreturn
في الحالة البسيطة - بتستخدم السهم
=>
بدل كلمةfunction
📌 1- حالات مختلفة لاستخدام الـ Arrow Function
(1) لو عندك بارامتر واحد تقدر تشيل الأقواس
console.log(square(5)); // 25
(2) لو مفيش بارامترات لازم تحط أقواس فاضية
console.log(greet()); // Hello, World
(3) لو الفانكشن فيها أكثر من سطر، لازم تستخدم {}
وكلمة return
console.log(multiply(4, 5)); // 20
📌 3- this
في الـ Arrow Function
الـ this
في الـ Arrow Function مش بيتغير حسب الاستدعاء وده فرق كبير
🔹 في الفانكشن العادية:
person.greet();
🔹 في الـ Arrow Function:
person.greet();
ليه حصل كده؟ لأن الـ this
في الـ Arrow Function بياخد القيمه من الـ Scope اللي اتعرف فيه ومش بيتغير حسب ال object المستدعي.
✅ الحل؟ استخدم Function Declaration في الكائنات بدل الـ Arrow Function
📌 4- الـ arguments
في الـ Arrow Functions
الـ Arrow Function مش بتوفر arguments
Object زي الفانكشن العادية
🔹 في الفانكشن العادية:
showArguments(1, 2, 3);
// [1, 2, 3]
🔹 في الـ Arrow Function (هتسبب Error)
showArguments(1, 2, 3); // ❌ ReferenceError: arguments is not defined
✅ الحل؟ استخدم الـ Rest Parameters (...args
) بدل arguments
showArguments(1, 2, 3); // [1, 2, 3]
📌 5- تطبيقات عملية على الـ Arrow Function
1- استخدام الـ Arrow Function معsetTimeout
و setInterval
2- استخدام الـ Arrow Function مع المصفوفات (map
, filter
, reduce
)
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
3- استخدام الـ Arrow Function داخل كائنات مع this
(الطريقة الصح)
user.sayHello(); // أهلاً مجدي ✅
هنا استخدمنا الـ Arrow Function جوه setTimeout
عشان this
يفضل يشير للكائن user
🎯 تـــاســك عــمــلــي
🔹 المطلوب:
- اكتب فانكشن اسمها
getFullName
تاخدfirstName
وlastName
وتجمعهم مع بعض باستخدام Arrow Function. - استخدم Arrow Function مع
map
عشان تحول Array من الأسعار بالدولار إلى الأسعار بالجنيه المصري (مثلا تضربها في 30). - اكتب فانكشن جوه كائن، جرب تستخدم Arrow Function جوهها وشوف
this
هيكون إيه؟
قسم التعليقات