[Javascript] C'est quoi l'utilité des fonctions anonymes ?

Salut-les-khey3
2021-12-15 20:24:01

J'ai pas bien compris leur utilité ?

Salut-les-khey3
2021-12-15 20:26:16

Quelqu'un pour me les présenté dans un contexte ou leurs utilité, est évidente ?

CommunalWheat9
2021-12-15 20:28:11

Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

jyvaispointcon
2021-12-15 20:29:41

Je ne suis pas sur mais il me semble que l'interet c'est de pouvoir faire de l'injection de dépendance. En gros tu utilises le principe de fonction pour l'injection de dépendance mais pas pour réutiliser celle-ci (d'ou le fait de ne pas lui donner de nom).

Salut-les-khey3
2021-12-15 20:33:23

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Salut-les-khey3
2021-12-15 20:35:06

Le 15 décembre 2021 à 20:29:41 :
Je ne suis pas sur mais il me semble que l'interet c'est de pouvoir faire de l'injection de dépendance. En gros tu utilises le principe de fonction pour l'injection de dépendance mais pas pour réutiliser celle-ci (d'ou le fait de ne pas lui donner de nom).

Interressant je connais pas ce concept d'injection de dépendance je vais creuser ça :ok:

DechetUItime
2021-12-15 20:35:38

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Parce que la fonction prend en parametre une fonction :(

Oshlatant
2021-12-15 20:38:33

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Il veut mettre un message précis, donc il doit la mettre dans une fonction anonyme afin de le faire

Sinon il aurait soit mis juste alert sans appeler la fonction, et ça aurait appeler la fonction à un moment T, soit il aurait mis alert("truc") mais ça aurait pas déclenché la fonction au bon moment et je crois pas que alert retourne ce qu'il faut.
Là il lui donne ce qu'on nomme un callback pour appeler cette fonction à un moment T, avec tout ce qu'il a besoin ( son string dans alert ) et le déclenchement au bon moment

IGotTheSoul
2021-12-15 20:42:20

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Sur les events, tu ne peux attacher de code directement, ça doit être une function.

N'oubie pas qu'en JS les objets sont des tableaux, donc pour linker ton code à un objet, il doit être un pointeur vers un tableau ou une fonction. Et la c'est pareil, si tu passe du code directement, tu n'as pas de point d'entrée.

La function est dite anonyme parce qu'elle est passé en arguments, c'est juste un pointeur vers ton code, il sera détruit au prochain nettoyage de la mémoire.

IGotTheSoul
2021-12-15 20:49:09

Le 15 décembre 2021 à 20:35:38 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Parce que la fonction prend en parametre une fonction :(

Non, pas une function, un lien vers une function.

Le 15 décembre 2021 à 20:38:33 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Il veut mettre un message précis, donc il doit la mettre dans une fonction anonyme afin de le faire

Sinon il aurait soit mis juste alert sans appeler la fonction, et ça aurait appeler la fonction à un moment T, soit il aurait mis alert("truc") mais ça aurait pas déclenché la fonction au bon moment et je crois pas que alert retourne ce qu'il faut.
Là il lui donne ce qu'on nomme un callback pour appeler cette fonction à un moment T, avec tout ce qu'il a besoin ( son string dans alert ) et le déclenchement au bon moment

Exactement, si tu mets le code ici, il sera exécuté au moment ou il sera interprété, pas au moment ou l'événement sera déclenché. Donc tu mets un lien vers ta function pour créer le lien et le lien sera exécuté quand l'événement sera declanché.

Tu dois comprendre que le suivant :
function lala () { }
Retourne un pointeur (un lien) vers la function lala.

Tu peux le vérifier en faisant :

alert(function lala () { } ) ; 

C'est un tableau. Affiche les éléments tu tableau et tu verras.

Salut-les-khey3
2021-12-15 20:50:18

Le 15 décembre 2021 à 20:42:20 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Sur les events, tu ne peux attacher de code directement, ça doit être une function.

N'oubie pas qu'en JS les objets sont des tableaux, donc pour linker ton code à un objet, il doit être un pointeur vers un tableau ou une fonction. Et la c'est pareil, si tu passe du code directement, tu n'as pas de point d'entrée.

La function est dite anonyme parce qu'elle est passé en arguments, c'est juste un pointeur vers ton code, il sera détruit au prochain nettoyage de la mémoire.

Le 15 décembre 2021 à 20:42:20 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Sur les events, tu ne peux attacher de code directement, ça doit être une function.

N'oubie pas qu'en JS les objets sont des tableaux, donc pour linker ton code à un objet, il doit être un pointeur vers un tableau ou une fonction. Et la c'est pareil, si tu passe du code directement, tu n'as pas de point d'entrée.

La function est dite anonyme parce qu'elle est passé en arguments, c'est juste un pointeur vers ton code, il sera détruit au prochain nettoyage de la mémoire.

D'accord effectivement je viens de tester de passer alert tel quel dans un event, et il se déclenche automatiquement sans que l'event soit activé.

Pour le reste je ne suis pas encore assez avancé pour comprendre, mais j'y viendrai plus tard, j'en suis qu'au début de mon apprentissage :ok:

Salut-les-khey3
2021-12-15 20:52:59

Le 15 décembre 2021 à 20:49:09 :

Le 15 décembre 2021 à 20:35:38 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Parce que la fonction prend en parametre une fonction :(

Non, pas une function, un lien vers une function.

Le 15 décembre 2021 à 20:38:33 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Il veut mettre un message précis, donc il doit la mettre dans une fonction anonyme afin de le faire

Sinon il aurait soit mis juste alert sans appeler la fonction, et ça aurait appeler la fonction à un moment T, soit il aurait mis alert("truc") mais ça aurait pas déclenché la fonction au bon moment et je crois pas que alert retourne ce qu'il faut.
Là il lui donne ce qu'on nomme un callback pour appeler cette fonction à un moment T, avec tout ce qu'il a besoin ( son string dans alert ) et le déclenchement au bon moment

Exactement, si tu mets le code ici, il sera exécuté au moment ou il sera interprété, pas au moment ou l'événement sera déclenché. Donc tu mets un lien vers ta function pour créer le lien et le lien sera exécuté quand l'événement sera declanché.

Tu dois comprendre que le suivant :
function lala () { }
Retourne un pointeur (un lien) vers la function lala.

Tu peux le vérifier en faisant :

alert(function lala () { } ) ; 

C'est un tableau. Affiche les éléments tu tableau et tu verras.

D'accord merci pour l'explication, tout ce que l'ont appel pointeur sont en fait un ou des liens vers une allocation mémoire ?

Et ce dans tout les language ou c'est propre au js ?

IGotTheSoul
2021-12-15 20:56:54

Le 15 décembre 2021 à 20:50:18 :

Le 15 décembre 2021 à 20:42:20 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Sur les events, tu ne peux attacher de code directement, ça doit être une function.

N'oubie pas qu'en JS les objets sont des tableaux, donc pour linker ton code à un objet, il doit être un pointeur vers un tableau ou une fonction. Et la c'est pareil, si tu passe du code directement, tu n'as pas de point d'entrée.

La function est dite anonyme parce qu'elle est passé en arguments, c'est juste un pointeur vers ton code, il sera détruit au prochain nettoyage de la mémoire.

Le 15 décembre 2021 à 20:42:20 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Sur les events, tu ne peux attacher de code directement, ça doit être une function.

N'oubie pas qu'en JS les objets sont des tableaux, donc pour linker ton code à un objet, il doit être un pointeur vers un tableau ou une fonction. Et la c'est pareil, si tu passe du code directement, tu n'as pas de point d'entrée.

La function est dite anonyme parce qu'elle est passé en arguments, c'est juste un pointeur vers ton code, il sera détruit au prochain nettoyage de la mémoire.

D'accord effectivement je viens de tester de passer alert tel quel dans un event, et il se déclenche automatiquement sans que l'event soit activé.

Pour le reste je ne suis pas encore assez avancé pour comprendre, mais j'y viendrai plus tard, j'en suis qu'au début de mon apprentissage :ok:

Très important, comprends la notion de valeur de pointeur/lien.

Une variable peut contenir une valeur:
var a=1 ;

a contient la valeur 1

var a=function b () {}

a est un lien vers la function b

JavaScript n'est pas un langage pur, il y a plein chose étrange, notamment le typage qui est un peu complexe au début.

IGotTheSoul
2021-12-15 20:59:32

Le 15 décembre 2021 à 20:52:59 :

Le 15 décembre 2021 à 20:49:09 :

Le 15 décembre 2021 à 20:35:38 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Parce que la fonction prend en parametre une fonction :(

Non, pas une function, un lien vers une function.

Le 15 décembre 2021 à 20:38:33 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Il veut mettre un message précis, donc il doit la mettre dans une fonction anonyme afin de le faire

Sinon il aurait soit mis juste alert sans appeler la fonction, et ça aurait appeler la fonction à un moment T, soit il aurait mis alert("truc") mais ça aurait pas déclenché la fonction au bon moment et je crois pas que alert retourne ce qu'il faut.
Là il lui donne ce qu'on nomme un callback pour appeler cette fonction à un moment T, avec tout ce qu'il a besoin ( son string dans alert ) et le déclenchement au bon moment

Exactement, si tu mets le code ici, il sera exécuté au moment ou il sera interprété, pas au moment ou l'événement sera déclenché. Donc tu mets un lien vers ta function pour créer le lien et le lien sera exécuté quand l'événement sera declanché.

Tu dois comprendre que le suivant :
function lala () { }
Retourne un pointeur (un lien) vers la function lala.

Tu peux le vérifier en faisant :

alert(function lala () { } ) ; 

C'est un tableau. Affiche les éléments tu tableau et tu verras.

D'accord merci pour l'explication, tout ce que l'ont appel pointeur sont en fait un ou des liens vers une allocation mémoire ?

Et ce dans tout les language ou c'est propre au js ?

Oui c'est ça, c'est un liens vers le texte qui est ta fonction. J'ai bien dis le texte, c'est pour ça que parfois ton code est valide mais qu'à l'exécution il plante, parce que la function n'est exécuté et donc interprèté que lorsque qu'elle est appelé.

C'est spécifique au JS.

Oshlatant
2021-12-15 21:02:20

C'est fortement déconseillé d'utiliser le mot clef var en js par contre, préfère const ou let ( mais préfère const quand c'est possible ). :noel:

Salut-les-khey3
2021-12-15 21:03:33

Le 15 décembre 2021 à 20:59:32 :

Le 15 décembre 2021 à 20:52:59 :

Le 15 décembre 2021 à 20:49:09 :

Le 15 décembre 2021 à 20:35:38 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Parce que la fonction prend en parametre une fonction :(

Non, pas une function, un lien vers une function.

Le 15 décembre 2021 à 20:38:33 :

Le 15 décembre 2021 à 20:33:23 :

Le 15 décembre 2021 à 20:28:11 :
Quand tu prévois pas de réutiliser la function, tu peut la faire en anonyme, sa peut te simplifier la vie.

Oui ça c'est que j'ai vue sur internet mais ducoup si tu prévoie pas de la réutilisé, quelle est l'utilité de créer une fonction ?

ça revient au même que de taper ses lignes de code tel quel :(

Pareil ça je comprend pas pourquoi il utilise un fonction contenant alerte, sur un evenement alors qu'il aurait juste pu écrire alert() sans fonction :(

https://image.noelshack.com/fichiers/2021/50/3/1639596800-capture.png

Il veut mettre un message précis, donc il doit la mettre dans une fonction anonyme afin de le faire

Sinon il aurait soit mis juste alert sans appeler la fonction, et ça aurait appeler la fonction à un moment T, soit il aurait mis alert("truc") mais ça aurait pas déclenché la fonction au bon moment et je crois pas que alert retourne ce qu'il faut.
Là il lui donne ce qu'on nomme un callback pour appeler cette fonction à un moment T, avec tout ce qu'il a besoin ( son string dans alert ) et le déclenchement au bon moment

Exactement, si tu mets le code ici, il sera exécuté au moment ou il sera interprété, pas au moment ou l'événement sera déclenché. Donc tu mets un lien vers ta function pour créer le lien et le lien sera exécuté quand l'événement sera declanché.

Tu dois comprendre que le suivant :
function lala () { }
Retourne un pointeur (un lien) vers la function lala.

Tu peux le vérifier en faisant :

alert(function lala () { } ) ; 

C'est un tableau. Affiche les éléments tu tableau et tu verras.

D'accord merci pour l'explication, tout ce que l'ont appel pointeur sont en fait un ou des liens vers une allocation mémoire ?

Et ce dans tout les language ou c'est propre au js ?

Oui c'est ça, c'est un liens vers le texte qui est ta fonction. J'ai bien dis le texte, c'est pour ça que parfois ton code est valide mais qu'à l'exécution il plante, parce que la function n'est exécuté et donc interprèté que lorsque qu'elle est appelé.

C'est spécifique au JS.

Ok merci pour ses mise en bouche khey j'ai hate de creuser :)

Salut-les-khey3
2021-12-15 21:09:34

Dernière question, j'ai rencontrer cette syntaxe au niveau des fonction, c'est money courante de procéder comme ça ?

Si je comprend bien le hoisting permet au paramètre de la fonction d'être assigner avant même qu'il ne soit déclarer (mais uniquement avec le mot clef var), mais pourquoi le gars à procéder ainsi, il y'a un avantage, ou une raison à cela ?

https://image.noelshack.com/fichiers/2021/50/3/1639598971-capture.png

Salut-les-khey3
2021-12-15 21:12:07

Pareil je comprend pas ce qu'il à fait à mettre un opérateur ternaire alors qu'il est en train de la déclarer :(

3-beers
2021-12-15 21:12:51

C'est intéressant si ce qui t'intéresse c'est surtout le corps de la fonction.
Regarde en particulier les lambda et notamment la curryfication.

ItSucksToBeMe
2021-12-15 21:15:13

Le 15 décembre 2021 à 21:12:07 Salut-les-khey3 a écrit :
Pareil je comprend pas ce qu'il à fait à mettre un opérateur ternaire alors qu'il est en train de la déclarer :(

Comme inscrit dans le commentaire, c'est pour mettre une valeur par défaut à l'argument "attribut" si celui n'est pas spécifié (et que donc il vaut undefined).
Après c'est un peu chelou, je sais pas pourquoi il utilise typeof au lieu de faire "var attribut = (attribut !== undefined) ? attribut : "date-link"

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.