2012-03-01 29 views
3

我很好奇,如果任何人有以下兩種方式來公開顯露的模塊模式參數中的任何偏好:顯露的模塊模式

圖表1:

DocReview.DocumentsApp = (
    ((DocReview, Backbone) -> 
     console.log("body") 
    )(window.DocReview, window.Backbone)) 

哪個編譯爲

DocReview.DocumentsApp = (function(DocReview, Backbone) { 
    return console.log("body"); 
    })(window.DocReview, window.Backbone); 

圖表2:

DocReview.DocumentsApp = do(DocReview = window.DocReview, Backbone = window.Backbone) -> 
    console.log("body") 

哪個編譯成

DocReview.DocumentsApp = (function(DocReview, Backbone) { 
    if (DocReview == null) DocReview = window.DocReview; 
    if (Backbone == null) Backbone = window.Backbone; 
    return console.log("body"); 
    })(DocReview, Backbone); 

我覺得我比較了做關鍵字的第二種方式,因爲它是整潔的CoffeeScript,但我不知道。

有人對此事分享意見嗎?

+0

我真的很喜歡做語法。不知道那個。這是愚蠢的:D看着它,它似乎是封閉包裝的關鍵字。基本上模塊模式是什麼。所以對我來說,它真的感覺就像使用的方法。 – SpoBo 2012-03-08 12:48:25

回答

1

另一種選擇:

DocReview.DocumentsApp = do ({DocReview, Backbone} = window) -> 
    console.log "body" 

編譯爲:

DocReview.DocumentsApp = (function(_arg) { 
    var Backbone, DocReview, _ref; 
    _ref = _arg != null ? _arg : window, DocReview = _ref.DocReview, Backbone = _ref.Backbone; 
    return console.log("body"); 
})({ 
    DocReview: DocReview, 
    Backbone: Backbone 
}); 
+0

不錯。咖啡分配是最具吸引力的功能之一。 – dagda1 2012-03-09 15:03:21