[問題] js的function

看板Ajax作者 (接科噎歐)時間14年前 (2011/12/18 14:18), 編輯推噓0(0012)
留言12則, 5人參與, 最新討論串1/2 (看更多)
大家好,在下正在學習js與jQuery,是新手,不過有寫過 flash的AS與php,js的感覺很像flash以前的AS2,還算蠻好上手的 但一直有個東西不懂為什麼要這樣寫,像jQuery原始碼裡 以及其它範例常出現下面的語法: (function(){ }()); 一般function是這樣寫 function(){ } 外層又包了括弧實在不懂這到底是什麼函義,是否能指點一二?感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.209.45

12/18 14:28, , 1F
js裡對實字(literal)的應用之多樣確實是其他語言所少見的。
12/18 14:28, 1F

12/18 14:29, , 2F
就是立刻執行那個 function
12/18 14:29, 2F
那可否再問一下,在jQuery裡它是帶了二個參數 (function( window, undefined ) { }()); 第二個參數undefined是做什麼用的?感覺沒用途呀… ※ 編輯: jjjkkkooo 來自: 122.118.209.45 (12/18 14:33)

12/18 14:56, , 3F
這是js的匿名函數(anonymous function),可隔離函數內外的變
12/18 14:56, 3F

12/18 14:57, , 4F
數。
12/18 14:57, 4F

12/18 14:58, , 5F
(function(window,undefined){})(window)即隔離jQuery定義的
12/18 14:58, 5F

12/18 14:59, , 6F
undefined。
12/18 14:59, 6F

12/18 20:58, , 7F
雖然還是沒看得很懂,不過還是感謝回覆 <(_ _)>
12/18 20:58, 7F

12/18 22:35, , 8F
undefined can be defined. ex:window.undefined=true;
12/18 22:35, 8F

12/18 22:38, , 9F
function定義一個參數但不傳值確保一定是 undefined
12/18 22:38, 9F

12/19 11:45, , 10F
不過其實在這裡傳 window跟 undefined 是加速他查找變數的
12/19 11:45, 10F

12/19 11:45, , 11F
時間,算是 performance finetune 為主的設計.
12/19 11:45, 11F

12/19 11:46, , 12F
當然 的確也有抽象化的效果啦 但一般不會這樣用
12/19 11:46, 12F
文章代碼(AID): #1ExOM_UH (Ajax)
文章代碼(AID): #1ExOM_UH (Ajax)