2014-01-17 92 views
0

我的任務是創建一個名爲MrFreeze對象/類和冷凍紀念這個對象,這樣沒有其他的變化可以對它進行] 我想出了以下解決方案,它的工作:JavaScript邏輯語法

Object.freeze(MrFreeze); 

但後來當我看到提供http://www.codewars.com的解決方案,我遇到了這個代碼:

(Object.freeze || object)(MrFreeze); 

我不明白這行代碼。請解釋爲什麼在使用OR對象操作符時工作正常。

+1

你的代碼在哪裏? –

+0

請說明***這個***的javascript函數? –

+0

這是我的工作代碼,我明白它Object.freeze(MrFreeze),但我需要解釋這行代碼:(Object.freeze || object)(MrFreeze) –

回答

1

看起來像一個後備給我。

時Object.freeze確實存在執行:

Object.freeze(MrFreeze); 

當它不存在Object.freeze它執行:

object(MrFreeze); 

這可能也被寫爲(更詳細的clearification ):

function freeze(MrFreeze, object) { 
    if (Object.freeze) { 
     Object.freeze(MrFreeze); 
    } 
    else { 
     object(MrFreeze); 
    } 
}