Maison  >  Questions et réponses  >  le corps du texte

javascript - Pourquoi onclick ne peut-il pas appeler directement une fonction contenant des paramètres mais doit être écrit sous la forme onclick=function(){fn(p)}?

Novice JS, dites-moi pourquoi onclick ne peut pas appeler directement la fonction contenant le paramètre et doit être écrite sous la forme onclick=function(){fn(p)} ? La fonction non paramétrique peut être écrite directement sous la forme onclick=fn();?
Quel est le principe sous-jacent ? Merci

高洛峰高洛峰2696 Il y a quelques jours824

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-05-19 10:33:56

    onclick peut en fait être directement lié à une fonction avec des paramètres, comme suit : 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

    Cependant, veuillez noter que votre exigence est d'exécuter la fonction fn(p), et le résultat de l'exécution est de renvoyer une valeur, pas une fonction.
    onclick est un événement de rappel lorsqu'on clique dessus. S'il est lié, il doit être lié à une fonction, pas à une valeur. Comme suit : 🎜 rrreee 🎜Le sens ici est de lier un événement onclick à l'entrée. Cet événement est une fonction lorsque vous cliquez dessus, le rappel est exécuté, ce qui signifie que la fonction est également exécutée. L'instruction fn(p) est exécutée. 🎜

    répondre
    0
  • 高洛峰

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

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

    Essayez de lier cette fonction de clic et voyez le résultat

    répondre
    0
  • Annulerrépondre