[問題] 一些javascript的疑問

看板Ajax作者 (老桑)時間8年前 (2016/08/08 14:04), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
各位好 小弟正在讀Professional Node.js這本書 書中提到說 由於javascript有closure特性 函式會將外層變數也一起包進來 為了避免汙染全域變數 所以建議把相關的部分包在一個函式裡 如以下sample code (function() { var clickCount = 0; $('button#mybutton').click(function(){ clickCount++; alert('Clicked' + clickCount + 'times.'); }); }()); 但我看不太懂這裡的語法 1. 像這樣直接用function當開頭的情況 不是只有在當作argument傳時才會這樣寫嗎? 2. 尾列的那個()的用途是? 我知道有種情況是function回傳的東西本身也是function 所以會再用一個()來傳argument進去 但這裡似乎是不同情況? 3. 把整個function再用一個()包起來的用意是? 以上疑問因為不曉得該用什麼關鍵字google... 只好請大家解惑了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.237.220 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1470636251.A.1A8.html

08/08 15:29, , 1F
本板#1G05D4BU
08/08 15:29, 1F

08/08 19:22, , 2F
感謝, 完全明白了
08/08 19:22, 2F

08/11 19:08, , 3F
IIFE
08/11 19:08, 3F
文章代碼(AID): #1Ng23R6e (Ajax)
文章代碼(AID): #1Ng23R6e (Ajax)