Hier sind einige praktische JavaScript-Objekte mit Kapselung

Discover Functional JavaScript wurde von BookAuthority als eines der besten neuen funktionalen Programmierbücher ausgezeichnet !

Kapselung bedeutet das Verstecken von Informationen. Es geht darum, die internen Teile des Objekts so weit wie möglich zu verbergen und eine minimale öffentliche Schnittstelle freizulegen.

Die einfachste und eleganteste Methode zum Erstellen einer Kapselung in JavaScript ist die Verwendung von Verschlüssen. Eine Schließung kann als Funktion mit privatem Staat erstellt werden. Wenn Sie viele Abschlüsse erstellen, die denselben privaten Status haben, erstellen wir ein Objekt.

Ich werde einige Objekte erstellen, die in einer Anwendung nützlich sein können: Stapel, Warteschlange, Ereignisemitter und Timer. Alle werden mit Werksfunktionen gebaut.

Lasst uns beginnen.

Stapel

Der Stapel ist eine Datenstruktur mit zwei Hauptoperationen: pushzum Hinzufügen eines Elements zur Sammlung und popzum Entfernen des zuletzt hinzugefügten Elements. Es fügt Elemente nach dem LIFO-Prinzip (Last In First Out) hinzu und entfernt sie.

Schauen Sie sich das nächste Beispiel an:

let stack = Stack(); stack.push(1); stack.push(2); stack.push(3); stack.pop(); //3 stack.pop(); //2

Lassen Sie uns den Stack mit einer Factory-Funktion implementieren.

function Stack(){ let list = []; function push(value){ list.push(value); } function pop(){ return list.pop(); } return Object.freeze({ push, pop }); }

Das Stapelobjekt verfügt über zwei öffentliche Methoden push()und pop(). Der interne Zustand kann nur mit diesen Methoden geändert werden.

stack.list; //undefined

Ich kann den internen Status nicht direkt ändern:

stack.list = 0;//Cannot add property list, object is not extensible

Weitere Informationen finden Sie im Buch Discover Functional JavaScript.

Weitere Informationen zum Anwenden funktionaler Programmiertechniken in React finden Sie unter Functional React .

Lernen Sie funktionale Reaktionen projektbasiert mit funktionaler Architektur mit React und Redux .

Auf Twitter folgen