Rumah  >  Soal Jawab  >  teks badan

javascript - Mengapa onclick tidak boleh memanggil terus fungsi yang mengandungi parameter tetapi perlu ditulis dalam bentuk onclick=function(){fn(p)}?

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

高洛峰高洛峰2696 hari yang lalu821

membalas semua(2)saya akan balas

  • PHPz

    PHPz2017-05-19 10:33:56

    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. 🎜

    balas
    0
  • 高洛峰

    高洛峰2017-05-19 10:33:56

    onclick = function(e) {console.log(e)}

    Cuba ikat fungsi klik ini dan lihat hasilnya

    balas
    0
  • Batalbalas