为了账号安全,请及时绑定邮箱和手机立即绑定

为什么onclick不能直接调用含参函数而需要写成onclick=function(){fn(p)}

为什么onclick不能直接调用含参函数而需要写成onclick=function(){fn(p)}

胡子哥哥 2018-11-14 17:13:53
js新手,求教大神,为什么onclick不能直接调用含参函数而需要写成onclick=function(){fn(p)}的形式?而非含参函数可以直接写为onclick=fn();?深层次原理是什么?谢谢
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

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


查看完整回答
反对 回复 2018-12-10
  • 1 回答
  • 0 关注
  • 1595 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信