Rumah > hujung hadapan web > tutorial js > Bolehkah Arrow Functions Mengikat Kaedah Kelas Secara Kekal dalam ES6?

Bolehkah Arrow Functions Mengikat Kaedah Kelas Secara Kekal dalam ES6?

Mary-Kate Olsen
Lepaskan: 2024-12-18 09:06:12
asal
322 orang telah melayarinya

Can Arrow Functions Permanently Bind Class Methods in ES6?

Cara Mengikat Fungsi Kelas Secara Kekal Menggunakan Fungsi Anak Panah dalam Kelas ES6

Kelas ES6 menyediakan cara yang lebih ringkas untuk menulis kod JavaScript berorientasikan objek . Walau bagaimanapun, apabila ia datang untuk mentakrifkan kaedah kelas, pembangun mungkin tertanya-tanya sama ada mungkin untuk mengikat kaedah secara kekal pada tika kelas menggunakan fungsi anak panah, sama seperti apa yang boleh dilakukan dengan CoffeeScript.

Masalah:

Secara tradisinya, kaedah kelas terikat pada contoh menggunakan kaedah bind() dalam pembina. Walau bagaimanapun, menggunakan fungsi anak panah memperkenalkan perbezaan sintaksis yang memerlukan pendekatan yang diubah suai.

Sintaks:

Untuk mengikat fungsi kelas sebagai kaedah contoh kelas menggunakan fungsi anak panah, sintaks berikut boleh digunakan:

class SomeClass extends React.Component {
  handleInputChange = (val) => {
    console.log('selectionMade: ', val);
  }
}
Salin selepas log masuk

Perhatikan perbezaan:

Berbanding dengan pendekatan tradisional, fungsi anak panah memerlukan tanda sama (=) selepas nama sifat.

Ciri Eksperimen:

Ciri ini pada masa ini dianggap sebagai percubaan di Babel. Untuk menggunakannya, pemalam transform-class-properties mesti didayakan. Ini boleh dilakukan dengan menambahkannya pada bahagian pemalam fail konfigurasi Babel:

{
  "plugins": [
    "transform-class-properties"
  ]
}
Salin selepas log masuk

Contoh Penggunaan:

Setelah ciri didayakan, pembangun boleh lulus kaedah kelas sebagai fungsi panggil balik dan ia akan diskop kepada contoh kelas, bukannya objek tetingkap. Sebagai contoh, kod berikut akan log nilai 'val' dari dalam contoh SomeClass:

setTimeout(SomeClass.handleInputChange, 1000, 'foo');
Salin selepas log masuk

Kesimpulan:

Dengan memanfaatkan fungsi anak panah dan mendayakan pemalam transform-class-properties, pembangun boleh mengikat kaedah kelas secara kekal kepada kejadian kelas. Pendekatan ini memudahkan proses pengikatan dan menyediakan sintaks yang ringkas dan konsisten untuk mentakrifkan kaedah kelas dalam ES6.

Atas ialah kandungan terperinci Bolehkah Arrow Functions Mengikat Kaedah Kelas Secara Kekal dalam ES6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan