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.