[問題] 一些javascript的疑問

作者: SunNEET (老桑)   2016-08-08 14:04:03
各位好 小弟正在讀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...
只好請大家解惑了 謝謝
作者: mrbigmouth (大嘴先生)   2016-08-08 15:29:00
本板#1G05D4BU
作者: SunNEET (老桑)   2016-08-08 19:22:00
感謝, 完全明白了
作者: Rivety (no)   2016-08-11 19:08:00
IIFE

Links booklink

Contact Us: admin [ a t ] ucptt.com