javascript - Mengapa onclick tidak boleh memanggil terus fungsi yang mengandungi parameter tetapi perlu ditulis dalam bentuk onclick=function(){fn(p)}?
高洛峰
高洛峰 2017-05-19 10:31:56
0
2
861

JS novice, sila tanya saya, kenapa onclick tidak boleh memanggil terus fungsi yang mengandungi parameter tetapi perlu ditulis dalam bentuk onclick=function(){fn(p)}? Fungsi bukan parametrik boleh ditulis terus sebagai onclick=fn();?
Apakah prinsip asasnya? Terima kasih

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
PHPzhong

onclick sebenarnya boleh terikat terus pada fungsi dengan parameter, seperti berikut: onclick其实是可以直接绑定有参数的函数,如下:

const input = document.getElementById('input');
input.onclick = function(params){
  console.log(params);
};

但是,请注意,你的需求是执行函数fn(p),执行的结果是返回一个值,而不是一个函数。
onclick作为点击时的回调事件,如果绑定,是一定要绑定一个函数的,而不是一个值。如下:

input.onclick = function(){
  fn(p);
};

这里的意思是,给input绑定一个onclick事件,这个事件是一个函数,点击时,回调就被执行了,意味着函数也被执行了,函数执行时,其中的语句fn(p) rrreee

Walau bagaimanapun, sila ambil perhatian bahawa keperluan anda adalah untuk melaksanakan fungsi fn(p) dan hasil pelaksanaan adalah untuk mengembalikan nilai, bukan fungsi.
onclick ialah acara panggil balik apabila diklik Jika ia terikat, ia mesti terikat pada fungsi, bukan nilai. Seperti berikut: 🎜 rrreee 🎜Maksudnya di sini adalah untuk mengikat acara onclick pada input Peristiwa ini adalah fungsi Apabila diklik, panggilan balik dilaksanakan, yang bermaksud bahawa fungsi itu juga dilaksanakan. pernyataan fn(p) dilaksanakan. 🎜
小葫芦
onclick = function(e) {console.log(e)}

Cuba ikat fungsi klik ini dan lihat hasilnya

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan