這是一個很好的架構來將所有代碼封裝在一個大對象中嗎?
不是真的在這個時代。當然,這種方法可以將全局名稱空間上的腳印縮小爲單個名稱,如app
。但使用ES6模塊可以更輕鬆地完成相同的任務。轉移非常容易。你可以繼續寫
function Tools() { }
Tools.someFunction = function(arg1, arg2) {
// do something
};
因爲你之前,但增加
export default Tools;
然後,您要使用此
import Tools from 'tools';
Tools.somefunction();
我怎麼可以追加靜態類這個字面意思?
有了ES6模塊,您不需要,但在這裏的許多問題中描述了許多模式。一些例子:
IIFE:
var app = {
someController: function() {
var f = function() { };
f.someProp = 42;
return 42;
}(),
初始化程序:
var app = {
someController: function() { },
init: function() {
this.someController.someProp = 42;
return this;
}
}.init();
明確劃分:
var app = {
someController: function() { }
};
app.someController.someProp = 42;
這些都不是很好玩的讀取或寫入。他們對2012年的感覺有些類似。使用ES6模塊來避免這種情況,並回到編寫常規舊代碼。
兩者都很好,但我認爲第二個更好,因爲在它裏面我們也可以有私有函數和變量。但都很好 –
第一個也可以有私人功能.. – Rayon
旁註:OOP沒有「靜態類」的概念。有靜態_members_(方法或屬性),而不是_classes_。雖然只包含靜態成員的類可能被稱爲靜態,但這只是一個縮短的術語,而不是單獨的概念。 – hindmost