事件里面調(diào)用函數(shù)時(shí),什么時(shí)候加括號(hào),什么時(shí)候不加括號(hào),有何區(qū)別? 比如我在學(xué)習(xí)MINIUI 他的事件里面都是onclick="tcon"這樣的
事件里面調(diào)用函數(shù)時(shí),什么時(shí)候加括號(hào),什么時(shí)候不加括號(hào),有何區(qū)別? 比如我在學(xué)習(xí)MINIUI 他的事件里面都是onclick="tcon"這樣的
事件里面調(diào)用函數(shù)時(shí),什么時(shí)候加括號(hào),什么時(shí)候不加括號(hào),有何區(qū)別? 比如我在學(xué)習(xí)MINIUI 他的事件里面都是onclick="tcon"這樣的
2016-04-26
舉報(bào)
2016-04-26
簡(jiǎn)單點(diǎn)說,帶括號(hào)的是函數(shù)調(diào)用,直接執(zhí)行函數(shù);不帶括號(hào)的是綁定事件,事件觸發(fā)再執(zhí)行。
復(fù)雜點(diǎn)說,帶括號(hào)的是把返回值賦值給事件,不帶括號(hào)的是把函數(shù)體所在地址位置賦值給事件。
舉個(gè)例子來說就是
<div id="a">函數(shù)括號(hào)那回事</div>
<input id="ip" type="button" value="點(diǎn)擊變色">
<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觸發(fā)執(zhí)行
? ? ? ?ip.onclick=cc(); ? //調(diào)用cc,直接執(zhí)行
? ?}
? ?change(); ?//調(diào)用change,直接執(zhí)行
</script>
上面代碼扔body里,2種挨個(gè)感受一下就知道了。
然后會(huì)有一個(gè)新問題,假如函數(shù)需要傳參怎么辦,這時(shí)候需要ip.onclick=function(){cc(obj);},理解方式一樣,綁定一個(gè)函數(shù),函數(shù)在觸發(fā)onclick時(shí)執(zhí)行,函數(shù)內(nèi)容是執(zhí)行cc。
如有錯(cuò)誤,望指正
2018-12-04
2016-04-26
對(duì)于我這個(gè)新人來說,沒遇到這樣的問題,不過一般調(diào)用點(diǎn)擊事件的話 是根據(jù)function函數(shù) 的函數(shù)名來調(diào)用的,函數(shù)名一般都是function xxx(){},所以在onclick=后面接的是xxx(),所以根據(jù)本人猜想,如果不加括號(hào),那么是否是function后的函數(shù)名不加括號(hào)...純屬猜想,有不對(duì)的地方請(qǐng)指正,....