亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么給button的onclick屬性賦值已經定義好的函數會不行呢

<body>
?<input?type="button"?value="按鈕"?id="btn">
?<script>
?function?showM()
?{
?????alert('Hello');
??}
??var?btn=document.getElementById("btn");
??btn.onclick=showM();
?</script>
?<body>


正在回答

2 回答

btn.onclick=showM();去掉括號,不然就變成傳函數返回值了

3 回復 有任何疑惑可以回復我~
#1

栄籬 提問者

可以詳細的解說一下函數的返回值嗎
2016-03-05 回復 有任何疑惑可以回復我~
#2

Harvie 回復 栄籬 提問者

這里 showM 是 showM() 這個函數的一個別名,它指向了 showM() 函數存放的地方。如果寫成 btn.onclick = showM; 就相當于告訴編譯器觸發 click 事件時在 showM 指向的地方去執行這個函數;而加了括號后就表示執行該函數,這樣 btn.onclick = showM(); 表示的就是 btn.onclick 等于 showM() 的返回值,當然這里我們并沒有顯式的用return來返回一個值,測試了一下默認返回值是undefined,所以 btn.onclick=showM(); 就相當于 btn.onclick=undefined;
2016-03-05 回復 有任何疑惑可以回復我~
#3

栄籬 提問者 回復 Harvie

萬分感謝,get到了
2016-03-05 回復 有任何疑惑可以回復我~
#4

Original121 回復 Harvie

btn2.onclick="showMe()";請問這樣為什么不行呢?
2016-05-03 回復 有任何疑惑可以回復我~
查看1條回復

下面的body標簽錯了 </body>

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

栄籬 提問者

不好意思,其實這body標簽在我編輯器了是對的,主要問題不在那,樓上那位已經解說了,謝謝
2016-03-05 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么給button的onclick屬性賦值已經定義好的函數會不行呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號