5.17 Exercice: Fonction Constructeur

Dans cet exercice, on reprend l'objet de publication mais on l'initialise via une fonction constructeur. Imaginez qu'on construit un moteur de blog : l'utilisateur vient juste de rédiger un article et ne l'a pas encore publié. À quoi ressemble alors la fonction constructeur ? Réfléchissez quelques minutes puis revenez pour la correction.

Quels paramètres passer

De toute évidence, il faut accepter title, body et author en paramètres. En revanche, views ne devrait pas être paramétrable : à la création, un article a toujours zéro vue. La propriété sera incrémentée plus tard, lors de chaque affichage. Même logique pour comments (toujours vide à la création) et isLive (toujours false par défaut, l'article n'est pas encore publié).

Cette règle est importante en design d'API : visez toujours des fonctions avec le moins de paramètres possibles. Au-delà de quatre paramètres, une fonction devient difficile à utiliser et à mémoriser.

Implémentation

function Post(title, body, author) {
							  this.title = title;
							  this.body = body;
							  this.author = author;
							  this.views = 0;
							  this.comments = [];
							  this.isLive = false;
							}
							
							const post = new Post('a', 'b', 'c');
							console.log(post);

Lorsque vous inspectez l'objet créé, vous constatez que title, body et author portent les valeurs passées à la construction, tandis que views vaut 0, comments est un tableau vide et isLive est à false. Ces valeurs par défaut traduisent l'état logique d'un article fraîchement écrit mais non encore publié.

Voilà pour ce petit exercice de fin de section sur les objets en JavaScript. Dans la prochaine section, nous abordons un autre type fondamental du langage : les tableaux.

En résumé

Cet exercice montre comment créer une fonction constructeur pour initialiser un objet de publication (Post) dans un moteur de blog. La fonction prend trois paramètres obligatoires (title, body, auteur) et initialise automatiquement les propriétés optionnelles avec des valeurs par défaut (views à 0, comments comme tableau vide, isLive à false). Cette approche démontre le principe de concevoir des fonctions constructeur avec un nombre limité de paramètres pour améliorer leur usabilité.

Points clés

  • Les fonctions constructeur permettent d'initialiser des objets avec une structure prédéfinie et des valeurs cohérentes
  • Certaines propriétés doivent avoir des valeurs par défaut (views = 0, comments = [], isLive = false) plutôt que d'être passées en paramètres
  • Limiter le nombre de paramètres (ici 3 essentiels) rend la fonction constructeur plus facile à utiliser et à maintenir
  • Les commentaires sont stockés dans un tableau vide initialement, ce qui permet d'ajouter ultérieurement des objets commentaire
  • Cette structure reflète la logique métier : une nouvelle publication n'a pas de vues, commentaires ou statut de publication
  • L'exercice montre l'initialisation intelligente : les valeurs par défaut appropriées au contexte sont appliquées automatiquement

Questions fréquentes

Pourquoi les vues et les commentaires ne sont-ils pas passés en paramètres de la fonction constructeur ?

Parce qu'une nouvelle publication devrait toujours commencer avec 0 vues et aucun commentaire. Ces valeurs sont des valeurs par défaut logiques qu'on initialise automatiquement plutôt que de laisser l'utilisateur les spécifier à chaque création.

Combien de paramètres une fonction constructeur devrait-elle avoir au maximum ?

Plus une fonction a de paramètres, plus elle devient difficile à utiliser. En général, viser 2-3 paramètres essentiels est une bonne pratique pour maintenir une usabilité correcte.

Comment les commentaires sont-ils gérés dans cet objet Post ?

Les commentaires sont stockés dans un tableau vide lors de la création du Post. On peut ensuite ajouter de nouveaux objets commentaire à ce tableau au fur et à mesure que les utilisateurs les ajoutent à la publication.