[问题] 一些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