Fonctions imbriquées javascript

Fonctions imbriquées javascript

Les fonctions imbriquées javascript sont les types de fonctions définies dans une autre fonction. Une ou plusieurs fonctions peuvent être ajoutées à l'intérieur d'une fonction, et la portée des fonctions externes comprend ces fonctions imbriquées ou intérieures. Les fonctions extérieures sont également appelées fonctions parentales, et les fonctions internes peuvent être nommées comme des fonctions enfants dans les fonctions imbriquées javascript. Les variables et les paramètres de la fonction parent sont accessibles à la fonction enfant, tandis que la fonction parent ne peut pas accéder aux variables déclarées à l'intérieur des fonctions de l'enfant.

Cet article a discuté des fonctions imbriquées javascript. De plus, nous avons également expliqué la portée variable, les paramètres et les instructions de retour des fonctions imbriquées à l'aide des exemples.

Fonctions imbriquées javascript

En JavaScript, une fonction imbriquée est une fonction définie à l'intérieur ou dans une autre fonction. La procédure de création d'une fonction imbriquée est la même que nous suivons pour la fonction normale, mais pour créer une fonction imbriquée, nous devons définir la nouvelle fonction ou la fonction enfant à l'intérieur de la fonction parentale.

Voici la Syntaxe des fonctions imbriquées JavaScript:

Fonction parentFunction () // Définition de fonction

Fonction infilfunction () // Définition de fonction

// corps de la fonction enfant

ChildFunction (); // Fonction enfant appelle

parentFunction (); // Fonction parent appelle

Comme vous pouvez le voir dans la syntaxe, nous devons définir le childfunction () dans le parentFonction (). De plus, lorsque nous voulons invoquer la fonction childal (), nous devons l'appeler dans le corps de la parentalité ().

Exemple: en utilisant des fonctions imbriquées javascript

Cet exemple vous montrera comment créer des fonctions imbriquées javascript. À cette fin, nous définirons une fonction parentale nommée «addnum ()», Qui a deux paramètres,«X" et "y". Après cela, nous créerons une fonction enfant "voir le message()«Qui imprime un SMS à la fenêtre de la console:

fonction addnum (x, y)

// fonction imbriquée
Fonction ShowMessage (texte)

console.journal (texte);

Soit sum = x + y;
// invoquer la fonction imbriquée
ShowMessage ("Sum is" + Sum)

Notez que nous avons appelé le «voir le message()”Fonction à l'intérieur de la définition de la fonction du«addnum ()" fonction. Dans l'étape suivante, nous appellerons la fonction parent addnum () en passant «5" et "6«Comme arguments:

addnum (5,6)

Comme vous pouvez le voir sur la sortie, nous avons exécuté avec succès les fonctions imbriquées de notre exemple:

Étendue variable des fonctions imbriquées JavaScript

Maintenant, parlons de l'étendue des fonctions imbriquées en javascript. Les fonctions imbriquées ont leur propre portée; Cependant, ils peuvent également accéder à la portée du parent ou de la fonction extérieure. Vous devez garder à l'esprit deux points sur la portée variable des fonctions imbriquées JavaScript: une fonction imbriquée est privée pour sa fonction parentale, et une fonction imbriquée a accès à la portée de la fonction parentale.

Nous expliquerons chacune des déclarations données à l'aide d'exemples.

Comme nous l'avons dit, la fonction imbriquée est considérée comme «privé”Pour la fonction qui contient sa définition. Cela signifie que seul le parent ou la fonction contenant peut accéder à la fonction imbriquée, et vous ne serez pas autorisé à y accéder en dehors de la fonction spécifiée. Cela se produit parce que nous avons défini la fonction intérieure à l'intérieur de la portée de la fonction extérieure.

Par exemple, nous avons défini une fonction extérieure "Ajouter un numéro()"Dans le code ci-dessous, puis a ajouté la fonction intérieure"voir le message()«Dans la définition de la fonction extérieure:

fonction addnumber (x, y)

Fonction ShowMessage (texte)

console.journal (texte);

Soit sum = x + y;
ShowMessage ("Sum is" + Sum)

Maintenant, lorsque nous essayons d'accéder à la fonction intérieure "voir le message()«En dehors de sa portée, il lancera le«Nérarration de référence" erreur:

ShowMessage ('20 ');

Toutes les fonctions, variables et arguments définis dans la fonction extérieure sont accessibles à la fonction imbriquée créée. Cette capacité est connue sous le nom de «portée lexicale», où la fonction intérieure peut accéder à la portée du parent ou de la fonction extérieure.

Nous ne transmettons aucun argument à notre fonction intérieure de showMessage () dans l'exemple ci-dessous. Ce que nous allons faire, c'est utiliser les arguments "X" et "y" de nôtre "ajouter un numéro()"Fonction extérieure et"somme»Variable:

fonction addnumber (x, y)

fonction showMessage ()

console.log ('somme de% d +% d est% d', x, y, sum);

Soit sum = x + y;
voir le message()

Maintenant, nous invoquerons la fonction extérieure "Ajouter un numéro()"Et passez le"4" et "6«Comme arguments:

AddNumber (4,6)

Jetez un œil à la sortie en dessous, ce qui signifie que nous avons réussi à accéder au «somme"Variable,"X", et "y”Argument de la fonction extérieure addNumber dans la fonction showMessage ():

Retour d'une fonction imbriquée JavaScript

La fonction extérieure a la capacité de retourner la fonction imbriquée. Par exemple, dans l'exemple ci-dessous, la fonction DisplayCounter () a un «compter»Variable et renvoie la fonction intérieure incrément ():

fonction displaycounter ()
Soit Count = 0;
incrément = function ()
return ++ count;
;
incrément de retour;

Nous stockons la fonction DisplayCounter () dans le «comptoir"Dans l'étape suivante. Maintenant, le concept dont nous devons discuter ici est que le «incrément()«La fonction aura toujours accès au«compter«Propriété du«DisplayCounter ()”Fonction lorsque l'affichionCounter () a terminé l'exécution. "Fermeture», Une fonctionnalité JavaScript, rend cela possible.

Ici le "compter«La propriété est locale au«DisplayCounter ()"Fonction, cependant, le défini"incrément«La fonction peut également y accéder car elle est imbriquée à l'intérieur du«DisplayCounter ()" fonction:

Counter = DisplayCounter ()

Le code donné ci-dessus appellera le «DisplayCounter ()" fonction. Ensuite, la fonction DisplayCounter () d'initialisera d'abord le «compter«Variable au«0«Valeur puis renvoie le«incrément()" fonction. Parce que le "compter«La propriété n'est pas détruite, lorsque nous appellerons la fonction d'incrément via le«comptoir()», Chaque fois que le«compter«La propriété sera incrémentée en fonction du code ajouté:

console.log (compter ());
console.log (compter ());
console.log (compter ());

Consultez la sortie ci-dessous de l'exemple fourni:

Paramètres des fonctions imbriquées JavaScript

La fonction intérieure peut également prendre des arguments. Par exemple, dans l'exemple suivant, le «innerfonction ()"Est renvoyé par le"Extérieur ()»Et chacun d'eux accepte un ensemble d'arguments:

fonction extérieure (x)
innerfonction = function (y)
console.log ("x% d y% d", x, y)
;
retourner innerfunction;

Pour obtenir le innerfonction (), Nous ajouterons le code suivant dans notre programme JavaScript lors de la réussite "3"Comme argument pour le Extérieur ():

Innerfonctionnement = ultrafonction (3);

Ensuite, nous invoquerons l'innerfonction () avec valeur "7«Comme argument:

Innervection (7);

Vous pouvez également transmettre les arguments pour les fonctions externes et intérieures à la fois:

Fonction extérieure (2) (3);

Les deux lignes spécifiées du code ont invoqué le InterFonction () et ont sorti les arguments passés:

Conclusion

JavaScript vous permet d'utiliser des fonctions imbriquées dans le programme sans rencontrer d'erreurs. Une fonction enfant ou intérieure peut être ajoutée à l'intérieur d'une fonction extérieure en javascript. Toutes les variables globales locales de la fonction extérieure sont accessibles à la fonction intérieure. Dans le cas de la fonction extérieure, seules les valeurs des propriétés globales et les méthodes et variables définies dans les fonctions parents sont accessibles. Cet article a discuté des fonctions imbriquées javascript. De plus, nous avons également expliqué la portée variable, la propriété de fermeture, la portée lexicale, les paramètres et les déclarations de retour des fonctions imbriquées JavaScript, à l'aide des exemples.