看板 Ajax 關於我們 聯絡資訊
大家好,我正在freecodecamp上面學ES6 在練習下面這個問題的時候,我知道答案是什麼 可是不知道那些括號為什麼要這樣括? 題目:https://goo.gl/y5TkVi https://imgur.com/NrLovqu 我嘗試拿掉第一組括號之後,結果也是正確的 https://imgur.com/FMwxSoR 這個時候讓我更混亂的是:剩下的一組括號要幹嘛? 爬文之後,好像是執行(?)的意思 這樣外面的那一層function跟裡面的function差在哪? 應該問說這樣寫的意義是? 為什麼不要乾脆一個function就搞定? https://imgur.com/IH3ryk7 =============================2018/11/26============================ 根據我自己的理解,修改題目原本的寫法結果如下 https://imgur.com/jRCQqb6 1.表示increment這個函示 2.increment執行之後,得到的結果(一個函示) 3.執行上述函示得到的結果 如下圖 https://imgur.com/fBB54KA 也就是說,把括號加到上面之後,就是原本的題目 這樣感覺比較好懂為什麼原本要那樣寫。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.170.34.241 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1542788708.A.224.html
tino1991: console.log(increment); 有差呢 11/21 16:45
lachtchlee: IIFE 11/21 18:14
Neisseria: 看起來是為了嚴格模式才故意這樣寫 11/21 23:02
Neisseria: 把嚴格模式的註解移到函式內會引發錯誤 11/21 23:03
pkro12345: 當你要載入js就執行某函式時又不想殘留變數保留該函數 11/22 04:50
pkro12345: 導致汙染全局變數時就會使用這種方法 11/22 04:51
pkro12345: 推薦你Udemy上的Javascript understanding the weird 11/22 04:52
pkro12345: parts 講解得非常清楚 例子簡單易懂 也有中文翻譯版的 11/22 04:54
pkro12345: 價格才300NT CP非常高 11/22 04:55
blueshika: 感謝大家的幫忙,總算有一點清楚了@@ 11/22 20:32
ccorn: 推p大那堂課,超扎實的又有中文字幕 11/22 23:49
idareyou: 這被稱作 立即呼叫函式運算式 11/23 09:20
idareyou: 後面的括弧是能夠放值進去的 11/23 09:20
jhnny97: 接著你可以進階學一下怎麼用closure包隱藏變數到函數裡 11/25 09:50
jhnny97: 你的JS熟練度會大大上升 11/25 09:50
※ 編輯: blueshika (36.233.51.217), 11/26/2018 15:32:22
WunoW: closure要弄懂,這是junior和senior明顯的分水嶺 12/15 19:56
WunoW: iife就無視吧... 沒什麼用 12/15 19:57