البرمجة

كيفية الوصول إلى this في addEventListener

للوصول إلى العنصر داخل الدالة makeD، يمكنك استخدام الطريقة التالية:

javascript
cloneN.querySelector('.def').addEventListener("click", function() { makeD(response, this); });

هنا، قمنا بإنشاء دالة مجهولة (anonymous function) تقوم بتنفيذ makeD وتمرير response و this كمعلمات. this سيشير إلى العنصر .def الذي تم النقر عليه داخل الدالة المجهولة، وبالتالي يمكنك الوصول إلى cloneN.querySelector('.defaultDBIcon') داخل الدالة makeD.

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

بالتأكيد، هنا بعض المعلومات الإضافية حول كيفية الوصول إلى this داخل دالة معاملة (callback function) في addEventListener:

  1. استخدام bind: يمكنك استخدام bind لربط this بالدالة makeD مسبقًا. على سبيل المثال:

    javascript
    cloneN.querySelector('.def').addEventListener("click", makeD.bind(null, response));

    هنا، يتم ربط this بـ null (لأننا لا نحتاج إلى تغييره) ويتم تمرير response كمعامل لـ makeD.

  2. استخدام دالة مجهولة: يمكنك استخدام دالة مجهولة للتقاط this داخلها، كما في المثال السابق.

  3. استخدام arrow function: يمكنك استخدام arrow function التي لا تقوم بإنشاء this خاص بها، بل تأخذ this من النطاق الخارجي. على سبيل المثال:

    javascript
    cloneN.querySelector('.def').addEventListener("click", () => { makeD(response, this); });

    هنا، this سيشير إلى this الخارجي للدالة addEventListener.

  4. الوصول إلى this باستخدام متغير مؤقت: يمكنك تعيين this إلى متغير مؤقت داخل نطاق الدالة الرئيسية، ثم استخدام هذا المتغير داخل الدالة التابعة. على سبيل المثال:

    javascript
    var that = this; cloneN.querySelector('.def').addEventListener("click", function() { makeD(response, that); });

    هنا، that يحتوي على this الخارجي للدالة الرئيسية، والذي يمكن استخدامه داخل الدالة المعاملة.

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