调用函数后加括号与不加括号的区别

本文详细解析了JavaScript中函数调用与事件绑定的不同,通过实例说明了带括号的函数立即执行,而不带括号的则是在事件触发时执行。此外,还介绍了如何在事件绑定中传递参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单点说,带括号的是函数调用,直接执行函数;不带括号的是绑定事件,事件触发再执行。

复杂点说,带括号的是把返回值赋值给事件,不带括号的是把函数体所在地址位置赋值给事件。

举个例子来说就是

<div id="a">函数括号那回事</div>
<input id="ip" type="button" value="点击变色">
<script type="text/javascript">
   function cc(){
       var a=document.getElementById("a");
       a.style.color="red";
   }
   function change(){
       var ip=document.getElementById("ip");
       //ip.onclick=cc;   //正常绑定事件,onclick触发执行
       ip.onclick=cc();   //调用cc,直接执行
   }
   change();  //调用change,直接执行
</script>

上面代码扔body里,2种挨个感受一下就知道了。

然后会有一个新问题,假如函数需要传参怎么办,这时候需要ip.onclick=function(){cc(obj);},理解方式一样,绑定一个函数,函数在触发onclick时执行,函数内容是执行cc。

转载于:https://www.cnblogs.com/qianphong/p/10433049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值