javascript - Warum kann onclick eine Parameter enthaltende Funktion nicht direkt aufrufen, sondern muss in der Form onclick=function(){fn(p)} geschrieben werden?
高洛峰
高洛峰 2017-05-19 10:31:56
0
2
814

JS-Neuling, bitte fragen Sie mich, warum onclick die Parameter enthaltende Funktion nicht direkt aufrufen kann, sondern in der Form onclick=function(){fn(p)} geschrieben werden muss? Die nichtparametrische Funktion kann direkt als onclick=fn(); geschrieben werden?
Was ist das zugrunde liegende Prinzip? Danke

高洛峰
高洛峰

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

Antworte allen(2)
PHPzhong

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)就被执行了。

小葫芦
onclick = function(e) {console.log(e)}

尝试绑定这个click函数 ,再看下结果呗

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!