فهم الغرض من "var that = this;" في JavaScript
عند العمل مع JavaScript، قد تواجه مقتطفات من التعليمات البرمجية التي تتضمن العبارة "var that = this;". تلعب هذه البنية دورًا حاسمًا في الحفاظ على سياق "هذا" داخل الوظائف المتداخلة، خاصة في معالجات الأحداث.
في JavaScript، تمثل الكلمة الأساسية "هذا" السياق الحالي أو الكائن الذي يمتلك الكود المستخدم ومع ذلك، عند استدعاء دالة داخل دالة أخرى، تتغير قيمة "هذا". يمكن أن يؤدي هذا إلى سلوك غير متوقع، خاصة في التعليمات البرمجية المستندة إلى الحدث حيث توجد معالجات الأحداث في عمليات رد الاتصال.
الغرض من تعيين "هذا" إلى "ذلك" هو التقاط السياق الحالي للكائن قبل فقده بسبب إلى تغيير في النطاق. من خلال تسمية "هذا" بـ "ذلك"، فإنك تضمن أن تظل القيمة الأصلية لـ "هذا" قابلة للوصول حتى داخل الوظائف المتداخلة.
فكر في المثال التالي:
$('#element').click(function() { // this is a reference to the element clicked on var that = this; $('.elements').each(function() { // this is a reference to the current element in the loop // that is still a reference to the element clicked on }); });
في هذا الكود، تتمتع وظيفة معالج الأحداث بإمكانية الوصول إلى العنصر الذي تم النقر عليه من خلال الكلمة الأساسية "هذا". ومع ذلك، ضمن الدالة المتداخلة (each())، تشير قيمة "هذا" إلى العنصر الحالي في الحلقة. من خلال التقاط "هذا" كـ "ذلك" في الوظيفة الخارجية، لا يزال بإمكانك الوصول إلى العنصر الذي تم النقر عليه في البداية.
يعد استخدام الأسماء المستعارة بخلاف "ذلك" ممارسة موصى بها لسهولة القراءة. في المثال أعلاه، اسم مستعار أكثر وصفًا مثل "clickedEl" من شأنه أن يوضح ما يشير إليه المتغير.
في الختام، "var that = this;" هي تقنية شائعة في JavaScript للحفاظ على قيمة "هذا" عبر نطاقات مختلفة. فهو يضمن الحفاظ على السياق الأصلي للكائن حتى عند استدعاء الوظائف المتداخلة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3