给事件响应函数传参数的四种方式小结_javascript技巧
如何给事件handler传参数?在刚刚接触Javascript的时候,由于对闭包理解不深刻,常常纠结于该问题。
在讨论群里也经常碰到这样的问题,如下
如何把参数v1,v2传给handler?默认事件对象将作为handler的第一个参数传入,这时点击链接第一个弹出的是事件对象,第二个是undefined。
方案一 ,未保留事件对象作为第一个参数传入
function handler(arg1,arg2){
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(){
handler(arg1,arg2);
});
方案二,保留事件对象作为第一个参数
function handler(e,arg1,arg2){
alert(e);
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(e){
handler(e,arg1,arg2);
});
方案三,给Function.prototype添加getCallback,不保留事件对象
Function.prototype.getCallback = function(){
var _this = this, args = arguments;
return function(e) {
return _this.apply(this || window, args);
};
}
E.on(document.getElementById('aa'),'click',handler.getCallback(v1,v2));
方案四,给Function.prototype添加getCallback,保留事件对象作为第一个参数传入
Function.prototype.getCallback = function(){
var _this = this, args = [];
for(var i=0,l=arguments.length;i
}
return function(e) {
args[0] = e;
return _this.apply(this || window, args);
};
}
E.on(document.getElementById('aa'),'click',handler.getCallback(v1,v2));

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah lulus parameter fungsi dan keselamatan benang: Lulus nilai: Buat salinan parameter tanpa menjejaskan nilai asal, biasanya selamat benang. Lulus dengan rujukan: Melepasi alamat, membenarkan pengubahsuaian nilai asal, biasanya tidak selamat untuk benang. Hantaran penunjuk: Menghantar penunjuk ke alamat adalah serupa dengan lulus melalui rujukan dan biasanya tidak selamat untuk benang. Dalam program berbilang benang, rujukan dan hantaran penunjuk harus digunakan dengan berhati-hati, dan langkah perlu diambil untuk mencegah perlumbaan data.

Lulus parameter tidak tentu C++: dilaksanakan melalui... operator, yang menerima sebarang bilangan parameter tambahan Kelebihan termasuk fleksibiliti, skalabiliti dan kod dipermudahkan Kelemahan termasuk overhed prestasi, kesukaran penyahpepijatan dan keselamatan jenis. Contoh praktikal biasa termasuk printf() dan std::cout, yang menggunakan va_list untuk mengendalikan bilangan parameter yang berubah-ubah.

Sebagai bahasa pengaturcaraan yang cekap, C++ digunakan secara meluas dalam pelbagai bidang kerana kebolehpercayaannya. Walau bagaimanapun, dalam proses menulis kod, kita sering menghadapi beberapa ralat kompilasi, dan takrifan berulang parameter fungsi adalah salah satu daripadanya. Artikel ini akan memperincikan sebab dan penyelesaian untuk menentukan parameter fungsi berulang kali. Apakah yang mentakrifkan parameter fungsi berulang kali? Dalam pengaturcaraan C++, parameter fungsi merujuk kepada pembolehubah atau ungkapan yang muncul dalam definisi dan pengisytiharan fungsi dan digunakan untuk menerima parameter sebenar yang diluluskan apabila fungsi dipanggil. Apabila mentakrifkan senarai hujah fungsi, setiap hujah mestilah

Terdapat dua cara untuk menghantar parameter fungsi dalam C++: panggilan mengikut nilai (yang tidak menjejaskan parameter sebenar) dan panggilan melalui rujukan (yang mempengaruhi parameter sebenar). Parameter keluar dihantar melalui rujukan atau penuding, dan fungsi boleh menghantar nilai kepada pemanggil dengan mengubah suai pembolehubah yang ditunjuk oleh rujukan parameter atau penuding. Sila ambil perhatian apabila menggunakan: parameter keluar mesti diisytiharkan dengan jelas, hanya boleh sepadan dengan satu parameter sebenar dan tidak boleh menunjuk ke pembolehubah tempatan dalam fungsi Apabila memanggil dengan menghantar penunjuk, berhati-hati untuk mengelakkan penunjuk liar.

Ya, dalam banyak bahasa pengaturcaraan, tatasusunan boleh digunakan sebagai parameter fungsi, dan fungsi itu akan menjalankan operasi pada data yang disimpan di dalamnya. Sebagai contoh, fungsi printArray dalam C++ boleh mencetak elemen dalam tatasusunan, manakala fungsi printArray dalam Python boleh melintasi tatasusunan dan mencetak elemennya. Pengubahsuaian yang dibuat pada tatasusunan oleh fungsi ini juga ditunjukkan dalam tatasusunan asal dalam fungsi panggilan.

Jenis parameter fungsi PHP termasuk jenis skalar (integer, nombor titik terapung, rentetan, nilai Boolean, nilai nol), jenis komposit (tatasusunan, objek) dan jenis khas (fungsi panggil balik, parameter berubah). Fungsi boleh menukar parameter jenis yang berbeza secara automatik, tetapi ia juga boleh memaksa jenis tertentu melalui pengisytiharan jenis untuk mengelakkan penukaran tidak sengaja dan memastikan ketepatan parameter.

Apabila memilih kaedah lulus parameter fungsi dalam C++, terdapat empat pilihan: lulus mengikut nilai, lulus dengan rujukan, lulus dengan penunjuk dan lulus dengan rujukan const. Meluluskan nilai mencipta salinan nilai parameter dan tidak menjejaskan parameter asal dengan menghantar rujukan nilai parameter melalui rujukan boleh mengubah suai parameter asal menghantar penunjuk nilai parameter dengan penuding membolehkan nilai parameter asal diubah; melalui penunjuk; menghantar nilai parameter dengan rujukan const Rujukan const hanya boleh mengakses nilai parameter dan tidak boleh mengubah suainya.

Hubungan antara kaedah lulus parameter fungsi dan pengaturcaraan meta templat: lulus nilai: menyalin nilai parameter, fungsi tidak boleh mengubah suai pembolehubah asal. Lulus dengan rujukan: Lulus rujukan kepada parameter, dan fungsi boleh mengubah suai pembolehubah asal. Lulus penunjuk: menghantar penunjuk kepada parameter, fungsi boleh mengubah suai pembolehubah asal dengan membatalkan rujukan penunjuk. Metaprogramming templat boleh menjana kod berbeza berdasarkan jenis parameter dengan menentukan kaedah lulus parameter.
