Rolf B: Kommentar zum Wiki-Artikel „IIFE“

Beitrag lesen

problematische Seite

Hallo Ninja-Ausbildung?,

private Properties sind etwas anderes als Variablen, die in einer Closure versteckt sind.

class Demo1
{
   constructor(g) {
      const geheim = g;
      this.func = x => x+geheim;
   }
}

class Demo2
{
   #geheim;
   constructor(g) {
      this.#geheim = g;
   }
   func(x) {
      return x + this.#geheim;
   }
}

Du hast in beiden Fällen eine geheime Variable, aber Demo1 ist aufwändiger in der Laufzeit, weil für jede Demo1-Instanz ein neues Funktionsobjekt für this.func erstellt werden muss. In Demo2 ist func Teil des Prototypen und immer das gleiche Funktionsobjekt.

Bei drei Objekten ist es wurscht, aber mach das mal für tausende Objekte und 5 geheime Properties mit 12 Methoden. Da ist es sehr spürbar. Hab ich schon erlebt.

Rolf

--
sumpsi - posui - obstruxi