事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的
事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的
事件里面调用函数时,什么时候加括号,什么时候不加括号,有何区别? 比如我在学习MINIUI 他的事件里面都是onclick="tcon"这样的
2016-04-26
简单点说,带括号的是函数调用,直接执行函数;不带括号的是绑定事件,事件触发再执行。
复杂点说,带括号的是把返回值赋值给事件,不带括号的是把函数体所在地址位置赋值给事件。
举个例子来说就是
<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。
如有错误,望指正
举报