Kommentar zum Wiki-Artikel „IIFE“
Ninja-Ausbildung?
- javascript
- meinung
- programmiertechnik
0
Rolf B
Nur so ein Gedanke, der hier vielleicht irgendwie ein- oder fortgeführt werden könnte:
… aus der IIFE zurückzugeben. Weil … innerhalb der anonymen Funktion … behält sie auch nach dem Ende des IIFE-Aufrufs Zugriff …
+ Closure
Kommentar: so erhält man womöglich einen großen Teil der Kapselung, der bei anderen Sprachen „frei Haus“ geliefert wird, um den bei JS aber mit Macht gerungen werden muß: Objekte read-only machen und versiegeln, die Prototypen im Auge behalten (vor Manipulationen bewahren oder die in den Einsatz gelangenden verstecken …
Zumindest das „Privatisieren“ mit # und die damit einher gehende Tipparbeit, womöglich auch manches this-Gezappel, könnte einsparbar sein.
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