課程
/前端開發
/JavaScript
/JavaScript進階篇
事件里面調用函數時,什么時候加括號,什么時候不加括號,有何區別? 比如我在學習MINIUI 他的事件里面都是onclick="tcon"這樣的
2016-04-26
源自:JavaScript進階篇 5-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。
如有錯誤,望指正
依韻_宵音 提問者
dsfsdfds
對于我這個新人來說,沒遇到這樣的問題,不過一般調用點擊事件的話 是根據function函數 的函數名來調用的,函數名一般都是function xxx(){},所以在onclick=后面接的是xxx(),所以根據本人猜想,如果不加括號,那么是否是function后的函數名不加括號...純屬猜想,有不對的地方請指正,....
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
2 回答為什么調用函數的時候不加括號()?
2 回答函數調用時都需要加括號嗎
2 回答調用函數括號后面加不加分號
1 回答這個方法后面加括號和不加括號有什么區別嗎?
1 回答什么時候括號里面的元素或者節點要用引號括起來?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
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。
如有錯誤,望指正
2018-12-04
2016-04-26
對于我這個新人來說,沒遇到這樣的問題,不過一般調用點擊事件的話 是根據function函數 的函數名來調用的,函數名一般都是function xxx(){},所以在onclick=后面接的是xxx(),所以根據本人猜想,如果不加括號,那么是否是function后的函數名不加括號...純屬猜想,有不對的地方請指正,....