Liaison statique vs dynamique en javascript

Liaison statique vs dynamique en javascript

Dans Javascript, contraignant est le processus de liaison de la définition de fonction correcte avec un appel de fonction ou d'association d'une valeur à une variable. Une adresse mémoire est attribuée à chaque définition de fonction à la phase de compilation. Lorsqu'une fonction particulière est invoquée, l'exécution du programme se déplace vers cette adresse mémoire spécifique et récupère le code de fonction stocké à l'emplacement exécuté. Ce mécanisme est connu sous le nom obligatoire.

La liaison en JavaScript est divisée en deux types: «Liaison statique» et «liaison dynamique». Si toutes les informations requises liées aux appels de fonction et à une affectation variable sont déjà connues à temps de compilation, il est appelé la liaison statique. Dans l'autre cas, la liaison dynamique se produit lorsque les informations requises sont reconnues à Durée.

Cet article expliquera Liaison statique et liaison dynamique en javascript avec l'aide d'exemples appropriés. Alors, commençons!

Liaison statique en javascript

Javascript "Reliure statique«Se produit lorsqu'un compilateur reconnaît toutes les informations requises liées à l'attribution de valeurs aux variables ou à invoquer une fonction, à la phase de compilation. Il est également connu sous le nom «COMPILE-TIME BESOING» ou «BONSEMENT ENVIR».

La technique de liaison statique JavaScript est implémentée pendant le processus de codage, ce qui rend le programme plus efficace Parce que toutes les valeurs variables et les appels de fonction sont prédéfinis dans ce type de liaison. Cependant, cela affecte également la flexibilité du code.

Quelques exemples de la procédure de liaison statique sont: «Surcharge de l'opérateur» et «surcharge de fonction».

Maintenant, vérifions comment la liaison statique fonctionne derrière la surcharge de l'opérateur et la surcharge de fonctions en javascript.

Surcharge de l'opérateur avec une liaison statique en javascript

JavaScript nous permet de redéfinir le fonctionnement des opérateurs pour divers types définis par l'utilisateur tels que les structures et les objets. Cette fonctionnalité est connue sous le nom Surcharge de l'opérateur.

Exemple: surcharge de l'opérateur avec une liaison statique en javascript

Étant donné que la surcharge de l'opérateur fournit la fonctionnalité pour modifier le comportement de l'opérateur spécifié au moment de la compilation, nous utiliserons cette fonctionnalité pour redéfinir le comportement de l'opérateur «+»:

Par exemple, vous pouvez utiliser le "+" opérateur pour ajouter deux nombres:

3 + 6

Ou pour concaténer les cordes:

'Linux' + "+ 'indice'

Ou pour concaténer les numéros avec les chaînes:

1 + 'Article'

Sortir

Au moment de la compilation, opérateur "+" est surchargé en fonction du type de données que nous avons utilisées. Par exemple, «3» + «6» créé un nouveau numéro «9», tandis que «1» + «Article» a généré une chaîne «1 article». C'est ainsi que nous avons implémenté la surcharge de l'opérateur à l'aide de la liaison statique.

Fonction surcharge avec une liaison statique en javascript

Surcharge de fonction est un autre exemple de liaison statique dans laquelle plusieurs fonctions sont définies avec le même nom ayant des paramètres différents. L'appel de fonction se lie à la fonction correcte basée sur les arguments passés au moment de la compilation.

Exemple 1: surcharge de fonction avec liaison statique en javascript

Dans Surcharge de fonction, Les méthodes ajoutées peuvent avoir le même nom, mais pour les surcharger, vous devez transmettre différents arguments, modifiant les résultats en conséquence.

Par exemple, nous avons créé deux fonctions avec le même nom. La première "montrer()»La fonction accepte deux arguments, «X» et «Y» Et cela renvoie leur somme:

fonction show (x, y)
retour x + y;

La deuxième "montrer()"La fonction acceptera et renverra le passé"z" argument:

fonction show (z)
retourner z;

Maintenant quand nous passons «3» et «5» valeurs comme arguments, le Fonction «Show (3,5)» L'appel se liera à la première fonction show (), qui accepte a deux paramètres, alors que lorsqu'un argument est spécifié, le Fonction «Show (2)» L'appel se liera avec la deuxième fonction show ():

show (3,5);

Sortir

show (2);

Sortir

Dans l'exemple ci-dessus, les deux ont ajouté "montrer()«Les fonctions sont liées statistiquement au moment de la compilation. Par conséquent, aucun temps ne sera perdu en déterminant la fonction à appeler, ce qui entraîne Exécution de programme rapide et efficace.

Nous allons maintenant avancer et discuter de la liaison dynamique en javascript.

Liaison dynamique en javascript

«Liaison dynamique» en javascript est le processus d'attribution d'une valeur à une variable ou d'invoque une fonction au moment de l'exécution. Il est également connu sous le nom «Runtime liant» ou «liaison tardive» Parce que la liaison de la fonction appelle la fonction ou l'attribution correcte des valeurs aux variables respectives est retardée jusqu'à l'exécution.

La liaison dynamique permet au programme d'être plus flexible en permettant aux utilisateurs de choisir quelle fonction doit être invoquée et quelle valeur attribuer à une variable au moment de l'exécution. Cependant, il ralentit l'exécution, Comme toutes les informations spécifiées sont livrées au moment de l'exécution.

"Méthode remplacée"Est un excellent exemple de l'utilisation de la liaison dynamique dans JavaScript.

Méthode remplacée avec une liaison dynamique en javascript

Dans JavaScript, méthode remplacée est un mécanisme qui permet à une classe d'enfants d'implémenter la méthode de la classe parent d'une manière différente. De cette façon, la classe enfant remplace la méthode de la classe parentale à l'aide de liaison dynamique.

Exemple: méthode remplacée avec une liaison dynamique en javascript

Dans cet exemple, nous allons l'emporter sur le «parler()«Méthode du«Des oiseaux»(Parent) Classe. À cette fin, nous définirons davantage deux «parler()«Méthodes, d'abord dans le«Hibou«Classe et deuxième dans le«Pigeon«Classe, puis invoque le«parler()«Méthode de ces deux classes enfants:

Class Birds
parler()
console.journal ("Les oiseaux ont des sons différents");


La chouette de classe étend les oiseaux
parler()
console.Log ("Owl Says Screeeeee");


La classe Pigeon étend les oiseaux
parler()
console.Log ("Pigeon dit COO COO COO");


Const Owl = new Owl ();
const Pigeon = new Pigeon ();
hibou.parler();
pigeon.parler();

Il peut être vu à partir de la sortie ci-dessous Speak () Méthode de classe d'oiseaux est remplacé par ses classes d'enfants en raison de la liaison dynamique:

C'était tout à propos Liaison statique vs dynamique en javascript. Vous pouvez explorer davantage ce sujet en fonction de vos exigences.

Conclusion

Liaison statique en javascript se produit lorsqu'un compilateur reconnaît toutes les informations requises liées à l'affectation de valeurs variables ou invoquant une fonction en phase de compilation, alors que Liaison dynamique Affecte une valeur à une variable ou invoque une valeur invoquée une fonction au moment de l'exécution. Surcharge de fonction et surcharge de l'opérateur sont basés sur Liaison statique, et remplacement de la méthode est considéré comme un exemple de liaison dynamique. Cet article a discuté de la liaison statique et de la liaison dynamique en JavaScript à l'aide d'exemples appropriés.