Maison > Questions et réponses > le corps du texte
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
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
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. 🎜高洛峰2017-05-19 10:33:56
onclick = function(e) {console.log(e)}
Essayez de lier cette fonction de clic et voyez le résultat