Home » Uncategorized » Module Pattern / Revealing Module Pattern

Module Pattern / Revealing Module Pattern

Contents

Module Pattern

Ziel:
– Objekt mit privaten Variablen erstellen

let person = (function () {
  let name = 'Veronika'; //Private Objektvariable

  return  {
    getName: function () { // Objekt-Methode 1
      return name;
    },
    setName: function (myName){ // Objekt-Methode 2
      name = myName;
    }
  };
})(); // Immediatly invoked function expression

person.name;
// undefined
person.getName();
// 'Veronika'

person.setName('Not Veronika');
person.getName;
// 'Not Veronika'

Das pattern beinhalted eine IIFE.
Ich empfinde das allerdings eher als Limitierung und erbringt bezüglich des Ziels (Objekt mit privater Variable erstellen) nichts.

Revealing Module Pattern

Das RMP unterscheidet sich zum MP nur diesbezüglich, dass das die public Funktionen nicht innerhalb des „return“-Blocks codert werden, sondern derselbige nur referenzen auf die Funktionen enthält:

let person = (function () {
  let privateAge = 0;
  let privateName = 'Andrew';

  function privateAgeOneYear() {
    privateAge += 1;
    console.log(`One year has passed! Current age is ${privateAge}`);
  }

  function displayName() {
    console.log(`Name: ${privateName}`);
  }

  function ageOneYear() {
    privateAgeOneYear();
  }

  return {
    name: displayName,
    age: ageOneYear
  };
})();

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert