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)}?
高洛峰
高洛峰 2017-05-19 10:31:56
0
2
860

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

高洛峰
高洛峰

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

répondre à tous(2)
PHPzhong

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. 🎜
小葫芦
onclick = function(e) {console.log(e)}

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal