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

事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的

事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的

正在回答

3 回答

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

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

举个例子来说就是

<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。

如有错误,望指正

10 回复 有任何疑惑可以回复我~
#1

依韵_宵音 提问者

非常感谢!
2016-05-08 回复 有任何疑惑可以回复我~
dsfsdfds


0 回复 有任何疑惑可以回复我~

对于我这个新人来说,没遇到这样的问题,不过一般调用点击事件的话 是根据function函数 的函数名来调用的,函数名一般都是function xxx(){},所以在onclick=后面接的是xxx(),所以根据本人猜想,如果不加括号,那么是否是function后的函数名不加括号...纯属猜想,有不对的地方请指正,....

0 回复 有任何疑惑可以回复我~
#1

依韵_宵音 提问者

不对,定义的时候那个括号是不能少的,楼下答案很好!
2016-05-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信