2013-03-01 64 views
-2

javascript的第二個參數保存undefined以下代碼,爲什麼是這樣?什麼是爲什麼定義javascript函數的技巧第二個參數未定義?

(function(a,b){ 
    ... 
})(window) 

這是什麼技術?任何參考知道這種技術?

+0

...這是未定義的,因爲沒有值傳遞給它。你期望它是什麼? – JJJ 2013-03-01 09:07:16

+1

,因爲它會保持真正undefined – 2013-03-01 09:07:54

+0

看到這個得到更多關於它:: http://stackoverflow.com/questions/2716069/how-does-this-javascript-jquery-syntax-work-function-window-undefined – 2013-03-01 09:09:38

回答

1

您在1小時前提問過此問題。你期望什麼?你給第一個參數,然後JavaScript試圖找到其他人。如果沒有更多的參數被賦予函數,所有其他參數(你的情況中的b)將被設置爲undefined。 Javascript不像C++或Java。沒有編譯時錯誤,因爲JavaScript沒有編譯。所以它試圖自己解決問題。在這種情況下,如果傳遞的參數數量較少,則會將其他參數設置爲undefined並起作用。

+0

直到現在我還不明白,爲什麼第二個參數是未定義的。爲什麼要保持第二個參數未定義?我們不能忽視第二個參數'b'嗎? – 2013-03-01 09:11:16

+0

以及該功能如何工作?說有一行'b = 5;'如果沒有'b',javascript應該怎麼做?它會拋出一個異常,你的代碼將無法工作。該功能是用2個參數定義的,它始終需要2個參數! – shift66 2013-03-01 09:13:19

+0

如果你用一個來調用它,javascript會爲你添加第二個未定義的值(我認爲這種情況下最符合邏輯的值)。否則你的函數不會理解如何使用1參數,因爲它定義爲2。 – shift66 2013-03-01 09:15:43

0

這裏你需要2個參數在匿名函數中,但是你只提供單個參數(window)。因此第二個參數總是未定義的。