Kapselung in JavaScript | Erklärt

Kapselung in JavaScript | Erklärt
JavaScript ist eine leistungsstarke objektorientierte Skriptsprache, die zur Entwicklung komplexer Anwendungen verwendet werden kann. Mit einer Zunahme der Komplexität der Implementierung wird die Notwendigkeit, den Code aufrechtzuerhalten, maximiert. “VerkapselungIst eines der lobenswerten Prinzipien von Objekt orientierte Programmierung(Oop) Das hilft diesbezüglich.

Mit Hilfe der Kapselung können Sie leicht binden Die Daten oder eine einzelne Einheit zu den Methoden, die einige Operationen darauf ausführen. Es ermöglicht Ihnen auch, den Datenfluss in einer JavaScript -Anwendung zu validieren und zu steuern.

In dieser Beschreibung wird die Kapselung in JavaScript mit Hilfe geeigneter Beispiele erläutert. So lass uns anfangen!

Kapselung in JavaScript

Verkapselung In JavaScript wird eine Methodik für verwendet Informationen verstecken. Es basiert auf dem Konzept, dass Objekteigenschaften nicht öffentlich in die Außenwelt ausgesetzt werden sollten. Die Implementierung der Kapselung in JavaScript verhindert den Zugriff auf die Variablen, indem öffentliche Einrichtungen innerhalb eines Objekts hinzugefügt werden, mit denen die Anrufer bestimmte Ergebnisse erzielen können.

Beispiel: Implementierung der Kapselung in JavaScript

Zunächst werden wir ein JavaScript -Objekt namens erstellen “Student" ein ... haben "Name" Eigentum:

var student =
Name: "Alexander",
;

Im nächsten Schritt werden wir den Anfangswert der “ausdruckenName" Eigentum:

Konsole.Protokoll ("Schülername ist:"+ Student.Name);

Dann werden wir das ändern “Student.Name"Eigenschaftswert und verwenden Sie erneut die"Konsole.Protokoll()Methode zur Anzeige in der Konsole:

Student.name = "max";
Konsole.Protokoll ("Schülername ist:"+ Student.Name);
Student.name = "paul";
Konsole.Protokoll ("Schülername ist:"+ Student.Name);

Ausgang

Wie Sie sehen können, funktioniert alles perfekt nach der zusätzlichen Logik. Ein Problem tritt jedoch auf, wenn ein Benutzer einen Ganzzahlwert für die “eingibtStudent.Name" Eigentum.

Beispiel: Validierung von Daten mit Kapselungsmethoden in JavaScript

Eine JavaScript -Variable kann einen Wert eines beliebigen Datentyps enthalten. Um das erwähnte Problem zu beheben, müssen wir den Bereich der rechtlichen Zeichen für die “einschränkenName" Eigentumswert. Zu diesem Zweck werden wir a verwenden Regex -Ausdruck/\ d+//"Das wird nachsehen"Ein oder mehrere Vorkommen der Ziffernzeichen (0-9)“. Dieser Regex -Ausdruck wird in einer neuen Setter -Methode hinzugefügt. “Name einsetzen”Was weitere Tests durchführt:

var student =
Name: "Alexander",
setName: function (value)
var expression = new regexp (/\ d+/);
if (Ausdruck.Testwert))
Konsole.log ("Ungültiger Name wird eingegeben");

anders
Das.Name = Wert;

Als nächstes werden wir eine Getter -Methode hinzufügen “GetName”Um das abzurufen“Student.Name" Eigentumswert:

GetName: function ()
Geben Sie dies zurück.Name;

;
Konsole.Protokoll (Student.GetName ());
Student.setName ("max");
Konsole.Protokoll (Student.GetName ());
Student.setName (34);
Konsole.Protokoll (Student.GetName ());

Nun, wenn die Aussage “Ausdruck.Testwert)"Evaluiert zu sein"WAHR,"Dann wird eine Nachricht im Konsolenfenster angezeigt, in dem das heißt"Ungültiger Name wird eingegeben", ansonsten der "WertAls Argument verabschiedet wird dem “zugeordnet“Name" Eigentum:

Wir haben die Validierung mit einem Regex -Ausdruck in der Setter -Methode erfolgreich durchgeführt, unser Programm ist jedoch nicht vollständig eingekapselt. Das liegt daran, dass das "NameDie Eigenschaft wird global deklariert, wodurch der Anrufer auf seinen Wert zugreifen und diesen ändern kann:

Student.Name = 34;
Konsole.Protokoll (Student.GetName ());

Die oben gegebene Ausgabe zeigt, dass wir direkt auf die “zugegriffen haben, wenn wir direkt auf die“ zugegriffen habenName”Eigentum der“Student"Objekt, Validierung geschieht nicht und"34”Wird als Eigenschaftswert festgelegt. Diese Aktion beweist, dass auf die weltweit verfügbare Eigenschaft eines Objekts leicht zugegriffen werden kann, wodurch die Sicherheit der Daten gefährdet wird.

Kapselung in JavaScript mit Funktionsbereich

Anstatt die Eigenschaften des Objekts aufzudecken; Wir müssen es von außen verstecken. Dazu können Sie das verwenden “varSchlüsselwort zum Definieren einer Privateigentum und zum Einschließen in den Bereich einer Funktion.

Beispiel: Kapselung in JavaScript mit Funktionsbereich

Im Folgenden "newfunc () ” Definition “,“XIst eine private Variable, auf die im Körper der Funktion zugegriffen werden kann:

Funktion newfunc ()

var x = "LinuxHint.com ";
Konsole.log (x);

Konsole.log (x);

Die Ausführung des angegebenen Codes zeigt einen Fehler, weil “X"Ist in der" definiert "newfunc ()Und wir greifen in Bezug auf den globalen Umfang darauf zu:

In ähnlicher Weise Hinzufügen “Name"Als private Variable innerhalb der"SetterDie Methode beschränkt ihren direkten Zugriff. In diesem Szenario die “Name"Variable kann außerhalb der" nicht verwendet werden "SetterMethodenumfang, was bedeutet, dass das “Getter”Methode kann auch nicht darauf zugreifen.

Benutzen "Schließungen”Ist der einfachste und eleganteste Weg, um die Kapselung in JavaScript zu implementieren.

Einkapselung in JavaScript unter Verwendung von Schließungen

In einer übergeordneten Funktion “,“SchließungenErlauben Sie einer Funktion, die lokale Variable einer anderen Funktion zu verwenden.

Zum Beispiel haben wir eine private Variable “Name", Auf das mit beiden Methoden zugegriffen werden kann"GetName" Und "Name einsetzen”Innerhalb des Funktionsbereichs. Infolgedessen muss die anonyme Funktion jedes Mal aufgerufen werden, und muss das innere Objekt zurückgeben und es einer externen Variablen zuweisen.

Beispiel: Kapselung in JavaScript unter Verwendung von Schließungen

In diesem Beispiel, wenn wir uns aufrufen “Name einsetzen()" Und "GetName ()Funktionen erzeugen diese Aktion einen neuen Umfang des Aufladungsschließungsbereichs. Der Zielfernrohr wird dann erhalten, indem ein Zeiger auf die „zurückgeführt wird“Student" Objekt:

var student = function ()
var name = "Alexander";
var expression = new regexp (/\ d+/);
zurückkehren
setName: function (value)
if (Ausdruck.Testwert))
Konsole.log ("Ungültiger Name wird eingegeben");

anders
Name = Wert;

,
GetName: function ()
Rückgabename;

;
();

Die angegebene Funktion endet mit “()”Zeigt an, dass wir die Funktion anrufen und den zurückgegebenen Wert der“ zuweisen “Student”Variable:

Konsole.Protokoll (Student.GetName ());
Student.setName ("max");
Konsole.Protokoll (Student.GetName ());
Student.setName (76);
Student.Name = 76;
Konsole.Protokoll (Student.GetName ());

In diesem Fall wird die Kapselung vollständig implementiert, indem Sie Schließungen, und die Anrufer können nicht direkt auf die private Variable zugreifen:

Das war alles über die grundlegenden Informationen zu Verkapselung In JavaScript; Sie können es nach unseren Anforderungen weiter untersuchen.

Abschluss

Verwendung Funktionsbereiche Und Schließungen, Verkapselung In JavaScript kann leicht implementiert werden. Mit Hilfe der Kapselung können Sie die Daten oder eine einzelne Einheit an die Methoden binden, die einige Operationen darauf ausführen. Es ermöglicht Ihnen auch, den Datenfluss in einer JavaScript -Anwendung zu validieren und zu steuern. In dieser Beschreibung wurde die Kapselung in JavaScript zusammen mit geeigneten Beispielen erläutert.