Das Grundkonzept eines Revealing Modul ist , dass Sie eine haben , Objectdie kapselt seine Daten und Verhalten:
var Module = (function(){
var privateStuff = {};
var publicStuff = {};
return publicStuff;
})();
Es gibt jedoch einige bewährte Methoden, die Sie bei der Verwendung dieses Musters anwenden sollten. Hier ist ein Modul (" Modulus") mit einigen Eigenschaften zur Demonstration, das einige dieser Praktiken verwendet:
function AbstractSomeClass(id) {
this.id = id;
return this;
}
var Modulus = (new (function SomeClass() {
var thus = this;
function NameClass(name){
this.value = thus.name || name;
}
AbstractSomeClass.call(this, 998);
this.name = 'Touring';
this.name = ( new NameClass('Hofstadter') ).value;
return {
id: this.id,
name: this.name
};
})());
Beachten Sie die (new (function SomeClass(){ ... })());Syntax. Wenn newSie so verwenden, können Sie das thisSchlüsselwort innerhalb des Abschlusses verwenden. Dies ist praktisch , wenn Sie zu vererben Eigenschaften von einer anderen Klasse benötigen ( AbstractSomeClass.call(this, 998);) - Allerdings werden Sie noch brauchen , zeigen die Eigenschaften, die Öffentlichkeit haben möchten, zum Beispiel:
return {
id: this.id,
name: this.name
};
Beachten Sie auch , dass wir zuweisen thiszu thus- was erlaubt uns , die Parent- zu verwenden thisinnerhalb einer Unterklasse, die ihren eigenen hat thisUmfang ( this.value = thus.name || name;)
Dies sind wiederum nur einige der vorgeschlagenen Konventionen und Best Practices.