5.6 Les fonctions sont des objets
L'un des concepts déroutants de JavaScript est que les fonctions sont des objets. Donc, cette fonction de cercle que nous avons ici, est en fait un objet. Laissez vous montrer cela en détails. Alors on fait un cercle pont et regardez, ce sont tous les membres de la fonction cercle ou objet cercle. Les icônes violettes sont donc des méthodes, comme bind, apply, et les icônes bleues sont des propriétés. Jetons donc un coup d'œil à quelques-uns de ces membres dans la console. Ici dans le console, on a cercle point name, qui renvoie le nom de cette fonction. Ensuite on a Cercle point lenght qui renvoie le nombre d'arguments dans la dernière vidéo, je vous ai dit que chaque objet en JavaScript a une propriété constructeur, et qui fait référence à la fonction qui a été utilisée pour créer cet objet. Maintenant, voici la partie intéressante, à votre avis qui a crée cet objet ? Jetons un coup d'œil, alors on fait un cercle. constructeur nous avons donc ici un autre constructeur intégré appelé fonction, et lorsque nous déclarons une fonction en utilisant cette syntaxe. En interne, le moteur JavaScript utilisera ce constructeur de fonction pour créer cet objet. Donc ici je vais définir une constante appelée Cercle1, pour nous séparer de notre cercle. On a ensuite le regler sur new Function, ici, notre fonction nécessite un paramètre, radius, donc nous l'ajoutons ici sous forme de chaîne. Maintenant, comme deuxième argument, je vais passer le code à l'intérieur de cette fonction. Donc, pour le diviser en plusieurs lignes. Je vais utiliser les cotes arrieres, puis simplement copier tout ce code et le mettre ici, donc, lorsque nous déclarons une fonction en interne, elle est représentée comme ceci. Maintenant, nous pouvons appeler ce cercle 1, tout comme notre fonction de cercle. Donc, nous pouvons créer un objet cercle égal au new Cercle1, et passer 1 comme rayon. Enregistrer les modifications, maintenant dans la console, enregistrons cercle et Regardez, c'est un objet cercle avec ces deux membres. Voyons maintenant quelques méthodes disponibles dans vos fonctions. Je vais donc supprimer tout ce code, Cercle point et nous avons ici cette méthode d'appel, et avec cela, nous pouvons appeler une fonction. Regardez les arguments. Le premier argument est cet argument. Ici, nous devons passer un objet vide et this fera référence à cet objet que nous passons ici. Ensuite nous ajoutons nos arguments explicitement, donc ici nous avons un argument, nous passons 1, si nous avions plusieurs arguments, nous les passerions explicitement comme ça. Ainsi, cette expression est exactement comme l'expression de la ligne 11. Lorsque nous utilisons le nouvel opérateur, ce nouvel opérateur crée en interne un objet vide et le transmet comme premier argument à la méthode d'appel. Et cet objet déterminera le contexte de This, donc, This fera référence à cet objet. Plus tôt, je vous ai dit que si vous n'utilisez pas le nouvel opérateur, this pointera par défaut vers l'objet global qui est la fenêtre. Donc, si je veux réécrire cette expression de cette façon, au lieu de passer un objet vide, je passerais la fenêtre. revenons en arrière, donc le premier argument ici, a spécifié la cible De this. Nous avons maintenant une autre méthode appelée apply. C'est exactement comme la méthode d'appel, avec cela, nous pouvons appeler une fonction, mais au lieu de passer tous les arguments explicitement, nous les passons dans un tableau. Cela est donc très utile car si vous avez déjà un tableau quelque part dans votre application et que vous souhaitez passer un tableau comme deuxième argument à la méthode apply. En JavaScript, les fonctions sont donc des objets. Voilà pour cette vidéo sur les objets en JavaScript, on se retrouve pour toute une prochaine video.