作者jjjkkkooo (接科噎歐)
看板Ajax
標題[問題] js的function
時間Sun Dec 18 14:18:36 2011
大家好,在下正在學習js與jQuery,是新手,不過有寫過
flash的AS與php,js的感覺很像flash以前的AS2,還算蠻好上手的
但一直有個東西不懂為什麼要這樣寫,像jQuery原始碼裡
以及其它範例常出現下面的語法:
(function(){
}());
一般function是這樣寫
function(){
}
外層又包了括弧實在不懂這到底是什麼函義,是否能指點一二?感激不盡!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.209.45
1F:→ kilva:js裡對實字(literal)的應用之多樣確實是其他語言所少見的。 12/18 14:28
2F:→ bibo9901:就是立刻執行那個 function 12/18 14:29
那可否再問一下,在jQuery裡它是帶了二個參數
(function( window, undefined ) {
}());
第二個參數undefined是做什麼用的?感覺沒用途呀…
※ 編輯: jjjkkkooo 來自: 122.118.209.45 (12/18 14:33)
3F:→ kilva:這是js的匿名函數(anonymous function),可隔離函數內外的變 12/18 14:56
4F:→ kilva:數。 12/18 14:57
5F:→ kilva:(function(window,undefined){})(window)即隔離jQuery定義的 12/18 14:58
6F:→ kilva:undefined。 12/18 14:59
7F:→ jjjkkkooo:雖然還是沒看得很懂,不過還是感謝回覆 <(_ _)> 12/18 20:58
8F:→ grence:undefined can be defined. ex:window.undefined=true; 12/18 22:35
9F:→ grence:function定義一個參數但不傳值確保一定是 undefined 12/18 22:38
10F:→ TonyQ:不過其實在這裡傳 window跟 undefined 是加速他查找變數的 12/19 11:45
11F:→ TonyQ:時間,算是 performance finetune 為主的設計. 12/19 11:45
12F:→ TonyQ:當然 的確也有抽象化的效果啦 但一般不會這樣用 12/19 11:46