我想創建一個JavaScript庫。有兩種明顯的方式來做到這一點。創建一個庫成語
第一種方法使用新:
var myLib = new function(){
this.square = function(x){
return x*x;
};
}();
的另一種方法是返回一個對象:
var myLib = function(){
function square(x){
return x*x;
};
return {square:square};
}();
是一種方法優於另,或者是個人喜好的問題。
無論哪種方式,你有一個物體,因爲一個函數是一個對象,所以在我看來,第二風格只是隱藏事實上,'圖書館'是一個功能。美學上有好處,但IMO不值得額外的代碼和努力保持一切同步。據我所知,你總是可以回去做第二種方式,如果所有的用法都「表現得很好」,它就可以兼容。所以我會從第一條路線開始,如果你找到了第二條路線的理由,那沒有什麼能阻止你。 – zanerock
[構造函數與工廠函數]可能的重複(http://stackoverflow.com/questions/8698726/constructor-function-vs-factory-functions) – Alexander