2011-04-04 77 views
1

我看了這段代碼,找了一段時間後,在網上找我仍然沒有得到它。什麼意思返回{someObject:someObject}

var client = function(){ 

    var engine = { 

     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 

    }; 

    return { 
     engine : engine 
    }; 
}(); 

我的具體問題是關於return語句。我知道:

clientvar engine = { ... }是創建一個對象引擎裏面的一些屬性和默認值的功能,但我不明白,在它()功能的return和原因。

回答

2

該表達式的變量client被分配給既

  1. 定義它返回一個對象表達式
  2. 調用該函數,並使用該結果作爲新值用於client
的函數

更長的寫作方式代碼是

var method = function(){ 
    var engine = { 

     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 

    }; 

    return { 
     engine : engine 
    }; 
}; 
var client = method(); 
0

內部函數返回一個關聯數組(字典,如果您願意),其中密鑰engine映射到engine變量。冒號前的「引擎」是字典鍵,並被視爲文本而不是變量。它可能會更清楚地看作爲

return { 
    "engine" : engine 
}; 

它的工作原理完全相同。

所以,在這段代碼運行後,您可以訪問client.engine,這將爲您帶來內置函數中構建的「引擎」。

+0

的對象更確切地說,使用屬性鍵和值。在JavaScript中沒有關聯數組! – 2011-04-05 02:06:35

+0

感謝您提供的信息,它確實幫助我理解。 – Richard 2011-04-05 14:30:32

0

它創建了一個對象client,看起來像這樣:

Object 
    engine: Object 
     gecko: 0 
     ie: 0 
     version: null 
     webkit: 0 

我認爲這是書面說明關於JavaScript的一些點,因爲它可能是簡單的寫:

var client = { 
    engine: { 
     ie: 0, 
     gecko: 0, 
     webkit: 0, 
     version: null 
    } 
};