[問題] 請問一種JS寫法是什麼用途?

看板Ajax作者 (歡迎光臨Wiiholic.com)時間14年前 (2011/07/11 17:24), 編輯推噓7(705)
留言12則, 7人參與, 最新討論串1/1
這是從jQuery上看來的,而且Google API中也有很多這種寫法 大概的格式是 (function(a, undefine) { ... })(b, c); 我想請問這樣的寫法是有什麼用途呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.25.77

07/11 18:08, , 1F
隔離 避免汙染or被汙染... 應該是吧
07/11 18:08, 1F

07/11 18:32, , 2F
不是很明白,是避免變數被重寫嗎?
07/11 18:32, 2F

07/11 19:33, , 3F
多隻程式....避免相同變數名稱互相影響....
07/11 19:33, 3F

07/11 19:35, , 4F
js只有function才能產生scope...
07/11 19:35, 4F

07/11 21:46, , 5F
那請問 ()() 有什麼作用呢?
07/11 21:46, 5F

07/11 22:06, , 6F
匿名函式 foo=function(a, undefine) 執行它 foo(b, c)
07/11 22:06, 6F

07/12 01:43, , 7F
感謝樓上!!
07/12 01:43, 7F

07/14 23:38, , 8F
包住之後Callback回來叫他變數才不會被改掉XD
07/14 23:38, 8F

07/17 01:53, , 9F
這是closure 我們都知道js 是function block 這種作法可以
07/17 01:53, 9F

07/17 01:55, , 10F
將變數local化而避免汙染 這種design pattern廣泛出現於
07/17 01:55, 10F

07/17 01:56, , 11F
plug in 或是你在實作oo時
07/17 01:56, 11F

07/19 17:23, , 12F
sorry, 是 function scoping
07/19 17:23, 12F
文章代碼(AID): #1E6i5GbW (Ajax)
文章代碼(AID): #1E6i5GbW (Ajax)