البرمجة

العنوان: فهم دوال السهم السمين في JavaScript

لماذا يكون “this” غير معرف داخل تعريف دالة السهم السمين؟

عند استخدام دالة السهم السمين في JavaScript، فإنها لا تقوم بإنشاء سياق جديد للـ “this” كما تفعل الدوال التقليدية، بل تأخذ قيمة “this” من السياق الذي تم إنشاء الدالة فيه. هذا يعني أنه عند استخدام دالة السهم السمين داخل كائن مثلما فعلت في مثالك، فإن قيمة “this” لن تكون الكائن نفسه، بل ستكون قيمة “this” العامة للسياق الحالي الذي هو الـ “window” في حالة استخدام المتصفح أو “global” في حالة استخدام Node.js.

هذا يشرح لماذا كانت قيمة “this” غير معرفة داخل تعريف الدالة السهم السمين في مثالك. عند استخدام دالة السهم السمين، يجب عليك أن تتأكد من أن السياق الحالي يحتوي على المتغيرات التي تحتاج إليها، أو يمكنك استخدام تقنيات مثل القفل السهمي “arrow function binding” لربط قيمة “this” بالكائن الذي تريده.

المزيد من المعلومات

عند استخدام دالة السهم السمين، يتم تجاهل قيمة “this” داخل الدالة واستخدام قيمة “this” من السياق الذي تم إنشاء الدالة فيه. هذا يعني أنه إذا قمت بتعريف دالة السهم السمين داخل دالة أخرى، فإن قيمة “this” ستأخذ قيمة “this” من السياق الأعلى.

علاوة على ذلك، لا يمكن تغيير قيمة “this” داخل دالة السهم السمين باستخدام الدوال المدمجة مثل bind()، call() أو apply()، لأن دوال السهم السمين لا تقبل تغيير قيمة “this”.

تعتبر دوال السهم السمين مفيدة عندما تحتاج إلى الحفاظ على قيمة “this” من السياق الخارجي دون تغييرها، مثل عند استخدامها في دوال إشارة التعريف (callbacks) أو في دوال تنفيذية فورية (immediately invoked function expressions).

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر