Statische vs dynamische Bindung in JavaScript

Statische vs dynamische Bindung in JavaScript

In JavaScript, Bindung ist der Prozess der Verknüpfung der korrekten Funktionsdefinition mit einem Funktionsaufruf oder der Assoziation eines Werts mit einer Variablen. Jede Funktionsdefinition in der Kompilierungsphase wird eine Speicheradresse zugewiesen. Wenn eine bestimmte Funktion aufgerufen wird. Dieser Mechanismus ist bekannt als Bindung.

Die Bindung in JavaScript ist in zwei Typen unterteilt: "Statische Bindung" und "dynamische Bindung". Wenn alle erforderlichen Informationen in Bezug auf Funktionsaufrufe und variable Zuordnung bereits unter bekannt sind Kompilierungszeit, Es wird als statische Bindung bezeichnet. Im anderen Fall tritt eine dynamische Bindung auf, wenn die erforderlichen Informationen unter bestätigt werden Laufzeit.

Diese Beschreibung wird erklären Statische Bindung und dynamische Bindung in JavaScript Mit Hilfe geeigneter Beispiele. So lass uns anfangen!

Statische Bindung in JavaScript

JavaScript "Statische Bindung”Tritt auf, wenn ein Compiler alle erforderlichen Informationen zum Zuweisen von Werten an Variablen oder das Aufrufen einer Funktion in der Kompilierungsphase erkennt. Es ist auch als bekannt als "Kompilierungszeitbindung" oder "frühe Bindung".

Die statische Bindungstechnik von JavaScript wird während des Codierungsprozesses implementiert, wodurch das Programm mehr wird effizient Da alle variablen Werte und die Funktionsaufrufe in dieser Art der Bindung vordefiniert sind. Es wirkt sich jedoch auch auf die Code -Flexibilität aus.

Einige Beispiele für das statische Bindungsverfahren sind: "Operator -Überladung" und "Funktion Überladung".

Schauen wir uns nun heraus.

Operatorüberlastung mit statischer Bindung in JavaScript

Mit JavaScript können wir neu definieren, wie die Bediener für verschiedene benutzerdefinierte Typen wie Strukturen und Objekte arbeiten. Diese Funktionalität ist bekannt als Bedienerüberlastung.

Beispiel: Operatorüberlastung mit statischer Bindung in JavaScript

Da die Überlastung des Bedieners die Funktionalität bietet, das Verhalten des angegebenen Operators bei Compile-Time zu ändern, werden wir diese Funktionalität verwenden, um das Verhalten des „+“ -Operators neu zu definieren:

Zum Beispiel können Sie die nutzen "+" Operator zum Hinzufügen von zwei Zahlen:

3 + 6

Oder um Saiten zu verkettet:

'Linux' + " + 'Hinweis'

Oder um Zahlen mit Saiten zu verkettet:

1 + 'Artikel'

Ausgang

Bei Compile-Time Operator "+" wird basierend auf der Art der verwendeten Daten überladen. Zum Beispiel, "3" + "6" Erstellt eine neue Nummer "9", während "1" + "Artikel" eine Zeichenfolge "1 Artikel" generierte. So haben wir mit Hilfe der statischen Bindung die Überlastung des Bedieners implementiert.

Funktion Überladen mit statischer Bindung in JavaScript

Funktion Überlastung ist ein weiteres Beispiel für eine statische Bindung, bei der mehrere Funktionen mit dem definiert werden Gleicher Name mit unterschiedlichen Parametern. Der Funktionsaufruf bindet sich an der richtigen Funktion basierend auf den bestandenen Argumenten zur Kompilierungszeit.

Beispiel 1: Funktion Überladen mit statischer Bindung in JavaScript

In Funktion Überlastung, Die hinzugefügten Methoden können denselben Namen haben, aber um sie zu überladen, müssen Sie unterschiedliche Argumente übergeben und die Ergebnisse entsprechend ändern.

Zum Beispiel haben wir zwei Funktionen mit demselben Namen erstellt. Der erste "zeigen()Die Funktion akzeptiert zwei Argumente, "X" und "y", Und es gibt ihre Summe zurück:

Funktionshow (x, y)
Rückgabe x+y;

Der Zweite "zeigen()"Funktion wird die Übergabe zurückgeben und zurückgeben"z" Streit:

Funktionshow (z)
return z;

Nun, wenn wir vorbeikommen "3" und "5" Werte als Argumente, die "Show (3,5)" -Funktion Anruf wird sich an die erste Show () -Funktion bindet, die akzeptiert, hat zwei Parameter, während bei angegebenem Argument die "Show (2)" -Funktion Aufruf binden mit der zweiten show () -Funktion:

Show (3,5);

Ausgang

Show (2);

Ausgang

Im oben gegebenen Beispiel fügten beide hinzu “zeigen()Die Funktionen sind statistisch zu der Zusammenstellungszeit gebunden. Infolgedessen wird keine Zeit verschwendet, um zu bestimmen, welche Funktion aufgerufen werden soll, was dazu führt schnelle und effiziente Programmausführung.

Wir werden nun vorwärts gehen und dynamische Bindung in JavaScript diskutieren.

Dynamische Bindung in JavaScript

"Dynamische Bindung" in JavaScript ist der Prozess, der einen Wert zu einer Variablen zugewiesen oder zur Laufzeit eine Funktion aufgerufen hat. Es ist auch als bekannt als "Laufzeitbindung" oder "Späte Bindung" Da die Bindung der Funktion an die richtige Funktion oder Zuordnung von Werten an die jeweiligen Variablen aufruft, wird bis zur Laufzeit verzögert.

Die dynamische Bindung ermöglicht es dem Programm, mehr zu sein flexibel Indem Benutzer die Auswahl einer Variablen zur Ausführungszeit ermöglichen, welche Funktion aufgerufen werden soll und welchen Wert zugewiesen werden soll. Wie auch immer, es verlangsamt die Ausführung, Da alle angegebenen Informationen zur Laufzeit geliefert werden.

Methodenüberschreibung”Ist ein hervorragendes Beispiel für die Verwendung der dynamischen Bindung in JavaScript.

Methodenüberschreitend mit dynamischer Bindung in JavaScript

In JavaScript, Methode überschreiben ist ein Mechanismus, der es einer untergeordneten Klasse ermöglicht, die Methode der übergeordneten Klasse auf andere Weise zu implementieren. Auf diese Weise überschreibt die Unterrichtsklasse die übergeordnete Klassenmethode mit Hilfe von Dynamische Bindung.

Beispiel: Methodenüberschreitende mit dynamischer Bindung in JavaScript

In diesem Beispiel werden wir das überschreiben “sprechen()"Methode der"Vögel”(Eltern-) Klasse. Zu diesem Zweck werden wir zwei weiter definieren “sprechen()"Methoden, zuerst in" "Eule"Klasse und zweiter in"TaubeKlasse und dann auf die “aufzurufensprechen()Methode dieser beiden Kinderklassen:

Klassenvögel
sprechen()
Konsole.log ("Vögel haben unterschiedliche Klänge");


Klasse Owl erweitert Vögel
sprechen()
Konsole.log ("Owl sagt Screeeeee");


Klassenpaube erweitert Vögel
sprechen()
Konsole.log ("Pigeon sagt COO COO COO");


const owl = new owl ();
const pigeon = new Pigeon ();
Eule.sprechen();
Taube.sprechen();

Es ist aus der folgenden Ausgabe ersichtlich die Speak () Methode der Birds -Klasse wird durch seine Kinderklassen wegen der dynamischen Bindung überschrieben:

Das war alles darum Statische vs dynamische Bindung in JavaScript. Sie können dieses Thema nach Ihren Anforderungen weiter untersuchen.

Abschluss

Statische Bindung in JavaScript tritt auf, wenn ein Compiler alle erforderlichen Informationen zur Zuordnung von Variablenwerten oder in der Kompilierungsphase anerkennt, während die Kompilierungsphase eine Funktion aufgerufen hat, wohingegen Dynamische Bindung Weisen eine Variable einen Wert zu oder ruft einen aufgerufenen Wert eine Funktion zur Laufzeit auf. Funktion Überladen und Bedienerüberlastung basieren auf Statische Bindung und Methodenüberschreibung wird als Beispiel für dynamische Bindung angesehen. In dieser Beschreibung wurde mit Hilfe geeigneter Beispiele statische Bindung und dynamische Bindung in JavaScript besprochen.