2014-12-22 22 views
1

我試圖通過閱讀註釋的來源來更好地瞭解BackboneJS'選項|| (options = {})'呢?

options || (options = {}); 

選項是一個傳遞給函數的屬性,所以推測可能是'undefined'。我最初的想法是,如果它是未定義的,這個語句會將選項設置爲空對象。然而我的實驗似乎告訴我情況並非如此。另外,上一行是這樣的:

var attrs = attributes || {}; 

我認爲這幾乎是我所描述的(同時也縮短了屬性名稱)。

我的問題是,第一個代碼片段的實際用途是什麼?

完全上下文是here

+0

'options || (options = {});'與'options = options ||相同{};'。如果未定義,請將其設爲空對象 – juvian

+0

[請參閱此處以獲取答案](http://stackoverflow.com/a/24282165/821057) –

回答

3

此行:

options || (options = {}); 

檢查options是否未定義。如果是的話,它會給options分配一個新的對象值。

發生後的行:

1. options不會是未定義的。
2.左手標誌(如果存在)將被分配選項。

這是相同

options = options || {};


這條線:

var attrs = attributes || {}; 

attributes值分配給attrs如果attributes不是未定義,並且如果它是,它分配一個新的反對attrs。類似於:

var attrs; 
if(attributes) 
    attrs = attributes; 
else 
    attrs = {}; 
1

聲明:

options || (options = {}); 

是的縮寫:

if(!options) { 
    options = {}; 
} 

而且它更快相比,相當於速記:

options = options || {}; 
相關問題