作者rabbithenry (歡迎光臨Wiiholic.com)
看板Ajax
標題[問題] 請問一種JS寫法是什麼用途?
時間Mon Jul 11 17:24:29 2011
這是從jQuery上看來的,而且Google API中也有很多這種寫法
大概的格式是
(function(a, undefine) {
...
})(b, c);
我想請問這樣的寫法是有什麼用途呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.25.77
1F:推 s25g5d4:隔離 避免汙染or被汙染... 應該是吧 07/11 18:08
2F:→ rabbithenry:不是很明白,是避免變數被重寫嗎? 07/11 18:32
3F:推 foreverangle:多隻程式....避免相同變數名稱互相影響.... 07/11 19:33
4F:→ foreverangle:js只有function才能產生scope... 07/11 19:35
5F:→ rabbithenry:那請問 ()() 有什麼作用呢? 07/11 21:46
6F:推 ChowMein:匿名函式 foo=function(a, undefine) 執行它 foo(b, c) 07/11 22:06
7F:推 zombiesky:感謝樓上!! 07/12 01:43
8F:推 windwofswold:包住之後Callback回來叫他變數才不會被改掉XD 07/14 23:38
9F:推 senser:這是closure 我們都知道js 是function block 這種作法可以 07/17 01:53
10F:→ senser:將變數local化而避免汙染 這種design pattern廣泛出現於 07/17 01:55
11F:→ senser:plug in 或是你在實作oo時 07/17 01:56
12F:推 senser:sorry, 是 function scoping 07/19 17:23