LE SECRET DES CLOSURES EN JAVASCRIPT ?

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ม.ค. 2025

ความคิดเห็น • 23

  • @aeldro1410
    @aeldro1410 ปีที่แล้ว +1

    C'est un concept dont j'avais toujours eu du mal à comprendre la logique. Après m'y être repenché dessus, c'est tout de suite plus clair ! On stocke dans une variable le résultat de la fonction qu'on appelle. Comme le résultat de cette fonction est une autre fonction, alors quand on appelle notre variable, on peut lui passer en arguments des valeurs qui représentent les paramètres de la fonction retournée.
    J'ai cependant noté que la valeur de count est sauvegardée quand on utilise le script depuis un navigateur, mais pas quand on l'exécute dans Node. Quand on y réfléchit, ça semble assez logique puisque dans le cas de Node c'est comme si on réexécutait un nouveau script.
    Merci beaucoup pour cette petite vidéo qui m'aura bien aidé à me repencher sur une notion avec laquelle j'avais du mal. 😊

    • @melvynxdev
      @melvynxdev  ปีที่แล้ว +1

      Merci beaucoup trop cool que tu y vois plus claire !

  • @saitokojiro7110
    @saitokojiro7110 ปีที่แล้ว +1

    indirectement on les utilise. je sais pas si j'ai bien compris,
    de base il es presque impossible de modifier tout contenue dans la porté, la seul facon d'y parvenir c'est de passer par le children
    mais comment ce passe si la porté a possède plusieurs closure function ? et est-ce que la closure function peut devenir une porté et posséder une closure function ?

    • @melvynxdev
      @melvynxdev  ปีที่แล้ว

      j'ai pas tout compris ! Quand tu parles de porté tu parles de scope et quand tu parles d'enfant tu parles d'une function dans une autre function ?

    • @saitokojiro7110
      @saitokojiro7110 ปีที่แล้ว

      @@melvynxdev quand je parle de la porté c'est le nom que tu a utilisé pour décrire le parent a 2:45 et quand je parle des children c'est bien les function dans un autre function

  • @haise191
    @haise191 ปีที่แล้ว

    C'est marrant je suis en train de faire ta formation beginJs et je viens de passer ce module

  • @danygbe2661
    @danygbe2661 ปีที่แล้ว +1

    Hello, intéressante ta vidéo, tu dis que c'est un concept indispensable, tu expliques le fonctionnement mais tu ne dis pas dans qu'elle cas c'est utile ou utilisé ?

    • @ApprendreSansNecessite
      @ApprendreSansNecessite ปีที่แล้ว

      En programmation fonctionnelle l'usage est principalement l'application partielle, qui peut être une forme d'injection de dépendances (la syntaxe utilisée est dans ce cas plus légère : const add = a => b => a + b), mais certaines fonctions d'ordre supérieur peuvent réaliser des effets secondaires qui sont transparents pour le programme, comme par exemple une fonction de mémoïsation, de throttle ou de log. Une autre utilisation beaucoup moins courante mais parfois utile est d'utiliser un IIFE pour déclarer des variables locales avant de retourner quelque chose, ce qui permet en gros de simuler un petit module au sein d'un fichier. Enfin, les closures ont longtemps été la seule façon de définir des méthodes et propriétés privées en Javascript.

    • @danygbe2661
      @danygbe2661 ปีที่แล้ว

      okay merci mais du coup je ne vois pas en quoi c'est un concept indispensable à connaitre, je loupe peut être un truc ? @@ApprendreSansNecessite

    • @ApprendreSansNecessite
      @ApprendreSansNecessite ปีที่แล้ว

      @@danygbe2661 c'est indispensable dans la mesure où ça a trait à la portée et à la persistance des variables. Ne pas le maîtriser peut conduire à des fuites de mémoire par exemple (si tu maintiens dans une closure des références vers des objets qui seraient autrement éligibles au ramasse-miettes). Et tout simplement : c'est ce qui permet aux fonctions d'ordre supérieur de fonctionner, or c'est une brique fondamentale du paradigme fonctionnel, Javascript est un langage multi-paradigmes. On ne pourrait écrire aucun combinateur sans closure, pas même la composition de fonctions.

    • @melvynxdev
      @melvynxdev  ปีที่แล้ว

      Tu as raison, en gros en React toutes les functions que tu déclares dans un composant à accès au props, c'est les closures par exemple

    • @danygbe2661
      @danygbe2661 ปีที่แล้ว

      d'accord, merci pour les précisions@@ApprendreSansNecessite

  • @mockinbrd
    @mockinbrd ปีที่แล้ว

    Concept intéressant mais attention aux leak mémoire
    Les références contenues dans les Closure ne sont pas récupérées par le Garbage Collector et augmente donc la taille du heap
    Evitez donc les objets complexes

    • @melvynxdev
      @melvynxdev  ปีที่แล้ว

      Sisi, si une function qui contient une closure n'est plus référencer par JavaScript elle est supprimé.

  • @jeromev5119
    @jeromev5119 9 หลายเดือนก่อน +1

    ou la tu va vite !!!

    • @melvynxdev
      @melvynxdev  9 หลายเดือนก่อน +1

      sorry :cc

    • @jeromev5119
      @jeromev5119 9 หลายเดือนก่อน

      ​@@melvynxdevje commence à apprendre le js et cette fonction c est un casse tête à comprendre

    • @melvynxdev
      @melvynxdev  9 หลายเดือนก่อน

      je comprends !

  • @jeromeguerin2481
    @jeromeguerin2481 ปีที่แล้ว

    Hello Melvyn, merci pour la vidéo. J'ai bien compris le concept mais dans la réalité de tous les jours je ne vois pas dans quel cas ce concept est utilisé... aurais-tu un exemple ?

    • @melvynxdev
      @melvynxdev  ปีที่แล้ว

      tu l'utilises tout le temps

  • @TheSephix57
    @TheSephix57 ปีที่แล้ว

    C'est bien créé des closures, perds le scope, créer du garbage.
    Tes function peuvent être créé dans le scope global.