Menu
CoddyTech

Fonctions constructeurs

Fait partie de la section Programmation Orientée Objet du Journey JavaScript de Coddy. Leçon 4 sur 56.

Les fonctions constructrices sont des fonctions spéciales en JavaScript qui vous permettent de créer plusieurs objets ayant la même structure et le même comportement.

Définissez une fonction constructeur pour une Person :

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    return "Hello, my name is " + this.name;
  };
}

Crée un nouvel objet Person à l’aide du constructeur :

const john = new Person("John", 30);
const tyler = new Person("Tyler", 35);

Appelle un constructeur avec le mot-clé new. new crée un objet vide, exécute la fonction avec this pointant vers cet objet, puis renvoie l’objet ; ainsi, this.name = name stocke le nom dans john. Par convention, les noms de constructeurs commencent par une majuscule (Person, Car) pour indiquer qu’ils sont destinés à être appelés avec new.

Sans new, Person("John", 30) est un appel de fonction ordinaire : aucun objet n’est créé, this correspond à l’objet global (ou à undefined en mode strict), et l’appel renvoie undefined.

Après avoir exécuté le code ci-dessus, john est un objet avec les propriétés suivantes :

// L'objet john contient :
{
  name: "John",
  age: 30,
  greet: function() { return "Hello, my name is John"; }
}

Accédez aux propriétés et appelez les méthodes :

console.log(john.name); // Affiche : John
console.log(john.greet()); // Affiche : Hello, my name is John
challenge icon

Défi

  1. Créez une fonction constructeur nommée Book qui prend trois arguments :
  • title (String)
  • author (String)
  • pages (Number)

La fonction doit définir ces éléments comme propriétés de l’objet créé. 

    2. Ajoutez une méthode appelée getSummary qui renvoie une chaîne contenant quelques informations sur le livre : this.title + " was written by " + this.author + " and has " + this.pages + " pages";

Essayez vous-même

// TODO: Créez une fonction constructeur nommée Book qui prend trois arguments (title, author, pages)


// TODO: Définissez-les comme propriétés de l’objet créé


// TODO: Ajoutez une méthode appelée getSummary qui renvoie une chaîne contenant des informations sur le livre.
// Par exemple : Harry Potter was written by Rowling and has 500 pages


// Ne modifiez pas le code ci-dessous
const inputTitle = inp[0];          // Première ligne : titre du livre
const inputAuthor = inp[1];         // Deuxième ligne : auteur  
const inputPages = parseInt(inp[2]);// Troisième ligne : nombre de pages

const book = new Book(inputTitle, inputAuthor, inputPages);
console.log(book.getSummary());
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur JavaScript en ligne