Saya baru mengenal JavaScript / jQuery dan saya telah mempelajari cara membuat fungsi. Banyak fungsi telah dipotong dengan (e) dalam tanda kurung. Izinkan saya menunjukkan apa yang saya maksud:
$(this).click(function(e) {
// does something
});
Selalu tampak bahwa fungsi tersebut bahkan tidak menggunakan nilai (e), jadi mengapa begitu sering terjadi?
sumber
Intro
Hal kecil ' (e) ' sebenarnya adalah bagian dari cakupan yang lebih luas dari sesuatu dalam Javascript yang disebut fungsi penanganan peristiwa. Setiap fungsi penanganan acara menerima objek acara. Untuk tujuan diskusi ini, pikirkan sebuah objek sebagai "benda" yang menyimpan sekumpulan properti ( variabel ) dan metode ( fungsi ), seperti objek dalam bahasa lain. Pegangannya, ' e ' di dalam benda kecil (e) , seperti variabel yang memungkinkan Anda untuk berinteraksi dengan objek (dan saya menggunakan istilah variabel SANGAT longgar).
Pertimbangkan contoh jQuery berikut:
Penjelasan
Apa yang terjadi?
Saat pengguna mengklik elemen dengan id "#someLink" (mungkin berupa tag anchor), panggil fungsi anonim, "function (e)" , dan tetapkan objek yang dihasilkan ke handler, "e" . Sekarang ambil penangan itu dan panggil salah satu metodenya, "e.preventDefault ()" , yang seharusnya mencegah browser melakukan tindakan default untuk elemen itu.
catatan: Pegangan dapat diberi nama apa pun yang Anda inginkan (yaitu ' function (billybob) '). 'E' adalah singkatan dari 'event', yang tampaknya cukup standar untuk jenis fungsi ini.
Meskipun 'e.preventDefault ()' mungkin adalah penggunaan paling umum dari pengendali kejadian, objek itu sendiri berisi banyak properti dan metode yang bisa diakses melalui pengendali kejadian.
Beberapa informasi yang sangat bagus tentang topik ini dapat ditemukan di situs pembelajaran jQuery, http://learn.jquery.com . Berikan perhatian khusus pada bagian Menggunakan jQuery Core and Events .
sumber
e
tidak memiliki arti khusus. Ini hanya sebuah konvensi untuk digunakane
sebagai nama parameter fungsi ketika parameternya adalahevent
.Bisa jadi
demikian juga.
sumber
Dalam contoh itu,
e
hanyalah sebuah parameter untuk fungsi itu, tapi itu adalahevent
objek yang dilewati.sumber
The
e
argumen adalah singkat untuk objek acara. Misalnya, Anda mungkin ingin membuat kode untuk jangkar yang membatalkan tindakan default. Untuk melakukan ini, Anda akan menulis sesuatu seperti:Artinya ketika file
<a>
tag diklik, cegah tindakan default dari peristiwa klik.Meskipun Anda mungkin sering melihatnya, itu bukan sesuatu yang harus Anda gunakan di dalam fungsi meskipun Anda telah menetapkannya sebagai argumen.
sumber
Dalam jQuery
e
kependekan darievent
, objek acara saat ini. Biasanya diteruskan sebagai parameter untuk fungsi acara yang akan diaktifkan.Demo: Acara jQuery
Dalam demo yang saya gunakan
e
Saya mungkin juga telah menggunakan
event
Hal yang sama!
Programmer malas kita menggunakan banyak singkatan, sebagian mengurangi pekerjaan kita, sebagian lagi membantu keterbacaan. Memahami itu akan membantu Anda memahami mentalitas menulis kode.
sumber
Hari ini saya baru saja menulis postingan tentang "Mengapa kita menggunakan huruf seperti" e "di e.preventDefault ()?" dan saya pikir jawaban saya akan masuk akal ...
Pertama, mari kita lihat sintaks addEventListener
Biasanya akan menjadi: target.addEventListener (type, listener [, useCapture]);
Dan definisi dari parameter addEventlistener adalah:
(Dari MDN)
Tapi saya pikir ada satu hal yang harus diperhatikan: Ketika Anda menggunakan fungsi Javascript sebagai pendengar, objek yang mengimplementasikan antarmuka Acara (acara objek) akan secara otomatis ditetapkan ke "parameter pertama" dari fungsi tersebut. Jadi, jika Anda menggunakan function (e), objek akan ditetapkan ke "e" karena "e" adalah satu-satunya parameter fungsi (pasti yang pertama!), maka Anda dapat menggunakan e.preventDefault untuk mencegah sesuatu ....
mari kita coba contoh seperti di bawah ini:
hasilnya akan menjadi: [object MouseEvent] 5 dan Anda akan mencegah event click.
tetapi jika Anda menghapus tanda komentar seperti:
Anda akan mendapatkan: 8 dan kesalahan : "Uncaught TypeError: e.preventDefault bukan fungsi di HTMLInputElement. (VM409: 69)".
Tentu saja, peristiwa klik tidak akan dicegah kali ini. Karena "e" telah didefinisikan lagi dalam fungsi tersebut.
Namun, jika Anda mengubah kode menjadi:
semuanya akan bekerja dengan baik lagi ... Anda akan mendapatkan 8 dan peristiwa klik dicegah ...
Oleh karena itu, "e" hanyalah parameter dari fungsi Anda dan Anda memerlukan "e" dalam fungsi () untuk menerima "objek peristiwa" lalu lakukan e.preventDefault (). Ini juga alasan mengapa Anda bisa mengubah "e" menjadi kata-kata yang tidak dipesan oleh js.
sumber
Ini adalah referensi ke objek acara saat ini
sumber
Mengacu pada kode di atas
$(this)
adalah elemen yang merupakan variabel.click
adalah acara yang perlu dilakukan.parameter
e
secara otomatis diteruskan dari js ke fungsi Anda yang menyimpan nilai$(this)
nilai dan dapat digunakan lebih lanjut dalam kode Anda untuk melakukan beberapa operasi.sumber