Re: [問題] 新手請教括號有無的差別
※ 引述《liquidbox (樹枝擺擺)》之銘言:
: 我正在自學Javascript,以打好用Python寫爬蟲程式的基礎
: 現在看書自學發現以下問題(不重要的HTML標籤已省略)
: <body>
: <input type="button" id="b1" value="顯示訊息">
: <script language="javascript">
: var b1 = document.getElementById("b1");
: b1.onclick = alerts(); //<----這個括號
: function alerts()
: {
: window.alert("hello world");
: }
: </script>
: </body>
: 以上程式想試寫,按下「顯示訊息」按鈕後,自動跳出hello world,
: 但必須是沒有括號才是正確結果,也就按下按鈕後才跳出hello world,
: 如果如上面黃色部分,加上刮號後,「HTML一載入」瀏覽器就跳出hello world
: 雖然想要上網查原因,但這個實在不知道是什麼原因造成刮號有無的差別
: 在此請教,感謝回應
可以想成 () 代表執行。
因為程式已經先在下面定義好 function alerts(){ ... } 了
所以此時環境認識了alerts是個函數。
在指定onclick 事件要呼叫什麼函數時,
就只要給名稱就好。
這是javascript的特性
因為在js中,可以設 let a = 3,也可以 let a = function(){...}
另外可以看一下 IIFE(立即執行函數)
你宣告一個函數後
想要馬上執行他
一個是:
function alerts(){ console.log('hi'); }
alerts(); //在後面呼叫
用IIFE的話就是
( ()=>{ console.log('hi');} )();
最後紅色的括號代表『執行它』
打得有點亂 希望有幫助Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.6.15.211
※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1534041465.A.574.html
推
08/12 11:30,
6年前
, 1F
08/12 11:30, 1F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章