2 votes

Les fonctions et les fermetures peuvent-elles remplacer les classes en Javascript ?

Je me documentais sur AngularJS et je suis tombé sur la déclaration suivante dans un groupe de discussion :

Je dois dire, cependant, que plus j'utilise Angula j'ai dans la création de classes. Clas Vous pouvez faire à peu près tout ce dont vous avez besoin avec des fonctions pures et des closures. fermetures et vous n'avez pas à vous soucier de l'ennuyeux "this" et "that".

Quelqu'un peut-il expliquer ce que l'on entend par "fermetures" ?

1voto

Kevin Bowersox Points 48223

Les fermetures sont une structure du code Javascript dans laquelle, au sein de fonctions imbriquées, la portée de la fonction extérieure est conservée dans la fonction intérieure.

Par exemple :

function outer(x,y){
    var t = 1;
    return function(z){
        //x, y, t from the outer function are made available to inner function
        return x + y + z + t; 
    }
}

var outer1 = outer(1,1);  //creating a closure, or an instance of a function in sense
alert(outer1(1)); //Alerts 4

var outer2 = outer(2,2);
alert(outer2(2)); //Alerts 7

L'explication simple d'une fermeture est la suivante les définitions de fonctions et les expressions de fonctions qui se trouvent à l'intérieur des codes de fonction d'autres fonctions. Et que ces fonctions internes internes sont autorisées à accéder à toutes les variables locales, aux paramètres et aux fonctions internes déclarées dans leur(s) fonction(s) externe(s). Une fermeture est formée lorsque l'une de ces fonctions internes est rendue accessible en dehors de la fonction dans laquelle elle était contenue, de sorte qu'elle puisse être exécutée après le retour de la fonction externe. À ce moment-là, elle a encore aux variables locales, aux paramètres et aux déclarations de la fonction interne de sa fonction externe. Ces variables locales, paramètres et déclarations de fonction ont (initialement) les valeurs qu'ils avaient au moment du retour de la fonction externe et peuvent être utilisés par la fonction fonction interne.

Source :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X