我已經看到了揭示模塊模式,以及原型類模式。我把這兩種方法合二爲一,形成了一種暴露的階級模式。我試圖弄清楚這種模式是否有任何問題,或者是無法解決的問題。只要該對象的構造函數是typeof「function」,我會認爲不會有任何問題。揭示類模式vs原型方法?
我唯一可以提出的告誡是一個高容量的實例化類,其中私有函數在每次創建新類時都會創建。這可能會導致數千個實例的內存問題。對於那些內存中沒有的大型類,儘管如此,我的想法是更簡單的代碼可讀性和安全性可能是有益的。通過使功能保持私密並顯示它們,混淆器將所有內部功能最小化,從而使窺視者難以窺探。當然,這不是萬無一失的,但只是一個額外的保護層。另外,能夠私密地在函數內部工作,在類中刪除數百個「this」。也許這是一個小優勢,但對於複雜的代碼,它有助於提高可讀性。有人看到這種模式的任何主要問題?
//standard pattern
var MyClass = function() {
this.func1 = function() {
//dostuff
};
};
MyClass.prototype.func2 = function() {
this.func1();
//dostuff
};
-
//revealing class pattern
var MyClass = function() {
function privateFunc() {
//dostuff
}
function publicFunc() {
privateFunc();
//dostuff
}
this.publicFunc = publicFunc;
};
使用任何作品*爲你*。沒有絕對。 – zerkms
請參閱[在JavaScript中使用'prototype'與'this'?](http://stackoverflow.com/q/310870/218196)以及其他相關問題。 –