亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
Analisis Masalah: Perangkap Konteks ini
Penyelesaian: Fungsi AddEventListener dan anak panah
Analisis Kod:
Perkara yang perlu diperhatikan dan amalan terbaik
Meringkaskan
Rumah hujung hadapan web html tutorial Buat elemen HTML dalam kelas JavaScript dan mengikat peristiwa dengan betul untuk memanggil kaedah kelas

Buat elemen HTML dalam kelas JavaScript dan mengikat peristiwa dengan betul untuk memanggil kaedah kelas

Oct 15, 2025 pm 09:00 PM

Buat elemen HTML dalam kelas JavaScript dan mengikat peristiwa dengan betul untuk memanggil kaedah kelas

Tutorial ini meneroka cara membuat elemen HTML dalam kelas JavaScript dan mengikat peristiwa kepadanya untuk memanggil kaedah ahli kelas itu sendiri. Fokus pada menyelesaikan masalah kehilangan konteks `ini 'dalam atribut tradisional` onclick`. Adalah disyorkan untuk menggunakan `AddEventListener` digabungkan dengan fungsi anak panah untuk memastikan bahawa` ini` dalam pengendali acara dengan betul menunjuk kepada contoh kelas dan merealisasikan enkapsulasi dan penyerahan logik fungsional.

Apabila membina aplikasi web yang kompleks, kita sering perlu menjana unsur -unsur HTML secara dinamik di dalam kelas JavaScript dan menambah logik interaktif kepada unsur -unsur ini. Keperluan umum ialah apabila pengguna berinteraksi dengan unsur -unsur yang dihasilkan secara dinamik (seperti mengklik butang), mereka boleh memanggil kaedah kelas yang elemen itu milik mengendalikan logik perniagaan. Walau bagaimanapun, dengan menggunakan atribut onclick elemen HTML secara langsung dan cuba memanggil kaedah kelas melalui kata kunci ini sering menemui masalah yang salah dalam konteks ini.

Analisis Masalah: Perangkap Konteks ini

Pertimbangkan kod contoh berikut, yang cuba membuat butang dalam pembina kelas kereta dan menggunakan atribut onclick sejajar untuk memanggil kaedah kelas dosomething:

 const myelm = document.getElementById ("myelm");

kereta kelas {
  pembina (myelm) {
    myelm.innerHtml = `
      <butang jenis="butang" onclick="this.dosomething ('hello world')"> klik saya </butang>
    `;
  }

  Dosomething (x) {
    console.log (x);
  }
}

const MyCart = Cart baru (myelm);
<div id="myelm"> </div>

Apabila pengguna mengklik butang ini, konsol akan melaporkan ralat yang menunjukkan bahawa ini. Ini kerana dalam atribut onclick dalam talian dalam HTML, konteks ini biasanya menunjuk kepada elemen DOM itu sendiri yang mencetuskan peristiwa (iaitu elemen butang), bukan contoh kelas kereta yang kami harapkan. Oleh itu, tidak ada kaedah yang dinamakan Dosomething pada elemen butang.

Penyelesaian: Fungsi AddEventListener dan anak panah

Untuk mengaitkan pengendali acara dengan betul dengan kaedah kelas dan pastikan kata kunci ini selalu menunjuk kepada contoh kelas, kita harus menggunakan kaedah AddEventListener dan menggabungkannya dengan fungsi anak panah untuk menentukan pengendali acara.

AddEventListener adalah kaedah mengikat peristiwa standard dan disyorkan dalam JavaScript, yang membolehkan kami menambah satu atau lebih pendengar acara kepada elemen DOM. Ciri -ciri fungsi anak panah terletak pada skop leksikal yang mengikat ini: ia tidak mencipta konteksnya sendiri, tetapi mewarisi ini dari skop luaran apabila ditakrifkan. Dalam kaedah kelas, ini bermakna bahawa ini di dalam fungsi anak panah akan sentiasa menunjuk kepada contoh kelas.

Berikut adalah contoh kod yang lebih baik menggunakan fungsi AddEventListener dan anak panah:

 const myelm = document.getElementById ("myelm");

kereta kelas {
  pembina (myelm) {
    // 1. Buat elemen butang html biarkan btn = document.createeelement ('butang');
    btn.innerHtml = 'klik saya';

    // 2. Gunakan addEventListener untuk mengikat acara klik // Pengendali acara adalah fungsi anak panah btn.addeventListener ('klik', () => {
      // Dalam fungsi anak panah, 'ini' terikat secara leksikal ke skop luar apabila ia ditakrifkan // pada masa ini 'ini' dengan betul menunjuk kepada contoh kelas kereta ini.
    });

    // 3. Tambahkan butang ke dom myelm.append (btn);
  }

  Dosomething (x) {
    console.log (x);
  }
}

const MyCart = Cart baru (myelm);
<div id="myelm"> </div>

Analisis Kod:

  • Document.CreateElement ('Button'): Secara dinamik mencipta elemen butang baru.
  • btn.innerHtml = 'klik saya': Tetapkan teks paparan butang.
  • btn.addeventListener ('klik', () => {...}): Tambah pendengar acara klik untuk butang. Parameter kedua adalah fungsi anak panah yang bertindak sebagai panggilan balik yang akan dilaksanakan apabila acara itu dicetuskan.
  • This.dosomething ('Hello World'): Di dalam fungsi anak panah, ini menunjukkan contoh kelas kereta api semasa, jadi kaedah dosomethingnya boleh dipanggil dengan betul.
  • Myelm.Append (BTN): Menambah elemen butang yang baru dibuat ke bekas DOM yang ditentukan.

Perkara yang perlu diperhatikan dan amalan terbaik

  1. Elakkan pengendali acara sebaris: Cuba elakkan menggunakan pengendali acara sebaris seperti onclick = "someFunction ()" dalam tag HTML. Ini bukan sahaja menyebabkan gandingan kod HTML dan JavaScript, mengurangkan kebolehkerjaan, tetapi juga cenderung menyebabkan masalah konteks ini.
  2. Memahami konteks ini: Adalah penting untuk mempunyai pemahaman yang mendalam tentang peraturan mengikat kata kunci ini dalam JavaScript. Ia bergantung kepada konteks di mana fungsi dipanggil, bukan di mana fungsi ditakrifkan (kecuali fungsi anak panah).
  3. Delegasi Acara: Untuk sejumlah besar unsur -unsur yang dihasilkan secara dinamik yang perlu terikat pada acara yang sama, anda boleh mempertimbangkan menggunakan delegasi acara. Mengikat pendengar acara ke elemen induk biasa mereka, dan kemudian gunakan peristiwa yang menggelegak dan acara.
  4. Keluarkan pendengar acara: Jika elemen yang dihasilkan secara dinamik akan dikeluarkan atau diganti, dan pendengar acaranya tidak lagi diperlukan, untuk mengelakkan kebocoran ingatan, pembuanganEventListener harus digunakan untuk menghapuskan pendengar acara secara eksplisit.

Meringkaskan

Apabila mewujudkan unsur -unsur HTML secara dinamik dalam kelas JavaScript dan peristiwa mengikat untuk memanggil kaedah kelas, terasnya terletak dengan betul mengendalikan konteks ini. Dengan menggunakan document.createelement untuk membuat unsur -unsur dan menggabungkan addeventlistener dengan fungsi anak panah untuk mengikat peristiwa, kita dapat memastikan bahawa ini dalam pengendali acara selalu menunjuk kepada contoh kelas, dengan itu mencapai logik kod yang jelas, dapat dipelihara dan berfungsi dengan baik. Pendekatan ini adalah amalan standard dalam pembangunan JavaScript moden untuk mengendalikan interaksi UI dinamik.

Atas ialah kandungan terperinci Buat elemen HTML dalam kelas JavaScript dan mengikat peristiwa dengan betul untuk memanggil kaedah kelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Stock Market GPT

Stock Market GPT

Penyelidikan pelaburan dikuasakan AI untuk keputusan yang lebih bijak

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Petua CSS: Tepat menyembunyikan kandungan teks tertentu tanpa menjejaskan elemen ibu bapa Petua CSS: Tepat menyembunyikan kandungan teks tertentu tanpa menjejaskan elemen ibu bapa Sep 16, 2025 pm 10:54 PM

Tutorial ini memperincikan cara menggunakan CSS untuk menyembunyikan kandungan teks tertentu dengan tepat di halaman HTML untuk mengelakkan masalah seluruh elemen induk yang tersembunyi kerana pemilih yang tidak betul. Dengan menambah kelas CSS eksklusif ke elemen pembalut teks sasaran dan menggunakan paparan: tiada; Atribut, pemaju boleh mencapai kawalan halus elemen halaman, memastikan bahawa hanya bahagian yang diperlukan tersembunyi, dengan itu mengoptimumkan susun atur halaman dan pengalaman pengguna.

Tangkap peristiwa mousedown dengan elemen induk yang mengandungi iframes silang domain: prinsip dan batasan Tangkap peristiwa mousedown dengan elemen induk yang mengandungi iframes silang domain: prinsip dan batasan Sep 20, 2025 pm 11:00 PM

Artikel ini meneroka cabaran menangkap peristiwa mousedown pada div ibu bapa yang mengandungi iframes domain. Masalah teras ialah dasar keselamatan pelayar (dasar asal usul) menghalang acara langsung DOM mendengar kandungan iframe silang domain. Jenis penangkapan acara ini tidak dapat dicapai melainkan nama domain sumber iframe dikawal dan CORS dikonfigurasi. Artikel ini akan menerangkan mekanisme keselamatan secara terperinci dan batasan mereka mengenai interaksi peristiwa dan memberikan alternatif yang mungkin.

Melaksanakan Stacking Unsur Vertikal dalam Layout Bootstrap Flexbox: Dari sisi ke Lapisan Melaksanakan Stacking Unsur Vertikal dalam Layout Bootstrap Flexbox: Dari sisi ke Lapisan Sep 21, 2025 pm 10:42 PM

Apabila menggunakan bootstrap untuk susun atur laman web, pemaju sering menghadapi masalah elemen yang dipaparkan bersebelahan dan bukannya disusun secara vertikal secara lalai, terutamanya apabila bekas induk menggunakan susun atur Flexbox. Artikel ini akan meneroka cabaran susun atur yang sama dengan mendalam dan memberikan penyelesaian: dengan menyesuaikan atribut flex-arah dari bekas flex ke lajur, menggunakan kelas alat Flex-Column Bootstrap untuk mencapai susunan menegak yang betul dari tag H1 dan blok kandungan seperti bentuk, memastikan struktur halaman memenuhi jangkaan.

Bagaimana membuat teks membungkus imej dalam html? Bagaimana membuat teks membungkus imej dalam html? Sep 21, 2025 am 04:02 AM

USECSSSFLOOPROPERTYTOWRAPTEXTAROUNIMAGE: FloatLeftFortExtOntHeright, FloatRightFortExtOnTheLeft, AddMarginforspacing, andClearFloatStOpreventLayOuteSues.

Fungsi luaran JavaScript Panggilan Kesukaran Analisis: Lokasi skrip dan penamaan spesifikasi Fungsi luaran JavaScript Panggilan Kesukaran Analisis: Lokasi skrip dan penamaan spesifikasi Sep 20, 2025 pm 10:09 PM

Artikel ini meneroka dua masalah biasa apabila memanggil fungsi JavaScript luaran dalam HTML: masa pemuatan skrip yang tidak betul menyebabkan unsur-unsur DOM menjadi tidak siap, dan penamaan fungsi mungkin bertentangan dengan peristiwa terbina dalam pelayar atau kata kunci. Artikel ini menyediakan penyelesaian terperinci, termasuk lokasi rujukan skrip tweaking dan mengikuti spesifikasi penamaan fungsi yang baik untuk memastikan kod JavaScript dilaksanakan dengan betul.

Cara menetapkan atribut lang dalam html Cara menetapkan atribut lang dalam html Sep 21, 2025 am 02:34 AM

Setthelangattributeinthehtmltagtospecifypagelanguage, mis., Forenglish;

Bagaimana untuk menambah tooltip pada hover dalam html? Bagaimana untuk menambah tooltip pada hover dalam html? Sep 18, 2025 am 01:16 AM

USetetetitLeatTrBITrBITpetoLToolCUStOM-STyLElyLEtoMSORCUStOM.1.addtitle = "Text" toanyeLementFordefaLtTipips.2.forStyLEdToolTips, wrapTheelememementinAcontainer, uss.toolTipand.tool

Bagaimana untuk membuat hiperpautan ke alamat e -mel di HTML? Bagaimana untuk membuat hiperpautan ke alamat e -mel di HTML? Sep 16, 2025 am 02:24 AM

Usemailto: inhreftocreateemailinks.startwithforbasiclinks, tambah? Subjek = dan & body = forpre-filledContent, andincludemultipleaddressorcc =, bcc = foradvancedOptions.

See all articles