Maison > interface Web > js tutoriel > Comprendre les classes et l'héritage en JavaScript

Comprendre les classes et l'héritage en JavaScript

DDD
Libérer: 2024-12-22 17:37:11
original
295 Les gens l'ont consulté

Understanding Classes and Inheritance in JavaScript

Classes et héritage en JavaScript

Les classes JavaScript offrent un moyen moderne de gérer les concepts de programmation orientée objet (POO) tels que l'héritage, l'encapsulation et le polymorphisme. Dans ce guide, nous explorerons comment créer des classes, comment fonctionne l'héritage en JavaScript et comment étendre les classes pour créer des objets plus complexes.


1. Cours en JavaScript

Dans ES6, JavaScript a introduit une syntaxe plus propre et plus intuitive pour créer des objets à l'aide du mot-clé class.

Syntaxe pour définir une classe :

class ClassName {
  constructor() {
    // Initialization code
  }
  methodName() {
    // Method code
  }
}
Copier après la connexion
Copier après la connexion

Exemple de cours de base :

class Animal {
  constructor(name, type) {
    this.name = name;
    this.type = type;
  }
  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

const dog = new Animal('Buddy', 'Dog');
dog.speak();  // Output: Buddy makes a sound.
Copier après la connexion
Copier après la connexion

Points clés :

  • Méthode constructeur : La méthode constructeur est une fonction spéciale utilisée pour initialiser les objets créés à partir de la classe.
  • Méthodes d'instance : les fonctions définies à l'intérieur d'une classe sont des méthodes d'instance, qui peuvent être appelées sur des instances de la classe.

2. Héritage en JavaScript

L'héritage permet à une classe d'hériter des propriétés et des méthodes d'une autre classe. En JavaScript, cela peut être réalisé en utilisant le mot-clé extends.

Syntaxe pour l'héritage :

class ChildClass extends ParentClass {
  constructor() {
    super(); // Calls the parent class constructor
    // Additional initialization code for child class
  }
}
Copier après la connexion
Copier après la connexion

Exemple d'héritage :

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // Call the parent class constructor
    this.breed = breed;
  }
  speak() {
    console.log(`${this.name}, the ${this.breed}, barks.`);
  }
}

const dog = new Dog('Buddy', 'Golden Retriever');
dog.speak();  // Output: Buddy, the Golden Retriever, barks.
Copier après la connexion

Points clés :

  • super() : Le mot-clé super appelle le constructeur de la classe parent pour initialiser les propriétés héritées.
  • Méthodes de remplacement : La classe enfant peut remplacer les méthodes de la classe parent, comme le montre la méthode speak() ci-dessus.

3. Héritage et remplacement de méthode

En JavaScript, lorsqu'une classe enfant remplace une méthode de la classe parent, la version de la classe enfant de la méthode est utilisée. C'est ce qu'on appelle le remplacement de méthode.

Exemple de remplacement de méthode :

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

class Cat extends Animal {
  speak() {
    console.log(`${this.name} meows.`);
  }
}

const cat = new Cat('Whiskers');
cat.speak();  // Output: Whiskers meows.
Copier après la connexion

Points clés :

  • Lorsqu'une classe enfant fournit sa propre implémentation d'une méthode, elle remplace la méthode de la classe parent.
  • La classe enfant peut toujours appeler la méthode de la classe parent en utilisant super.method().

4. Héritage multiple (non directement pris en charge)

JavaScript ne prend pas directement en charge l'héritage multiple, ce qui signifie qu'une classe ne peut pas hériter de plusieurs classes simultanément. Cependant, vous pouvez contourner cette limitation en utilisant des mixins.

Exemple de Mixin :

class ClassName {
  constructor() {
    // Initialization code
  }
  methodName() {
    // Method code
  }
}
Copier après la connexion
Copier après la connexion

Points clés :

  • Les Les mixins sont un moyen d'ajouter des fonctionnalités à une classe sans utiliser l'héritage.
  • Vous pouvez "mélanger" les propriétés et les méthodes d'un objet à un autre en utilisant Object.assign().

5. Méthodes et propriétés statiques

Les méthodes et propriétés statiques appartiennent à la classe elle-même plutôt qu'aux instances de la classe. Ils sont appelés directement sur la classe.

Exemple de méthodes statiques :

class Animal {
  constructor(name, type) {
    this.name = name;
    this.type = type;
  }
  speak() {
    console.log(`${this.name} makes a sound.`);
  }
}

const dog = new Animal('Buddy', 'Dog');
dog.speak();  // Output: Buddy makes a sound.
Copier après la connexion
Copier après la connexion

Points clés :

  • Les méthodes statiques sont utiles pour les fonctions utilitaires qui ne nécessitent pas de données spécifiques à une instance.

6. Getters et Setters

Les getters et setters vous permettent de définir des méthodes spéciales pour obtenir et définir les propriétés des objets. Ceux-ci sont couramment utilisés pour encapsuler l'état d'un objet.

Exemple de getters et setters :

class ChildClass extends ParentClass {
  constructor() {
    super(); // Calls the parent class constructor
    // Additional initialization code for child class
  }
}
Copier après la connexion
Copier après la connexion

Points clés :

  • Getter : définit comment accéder à une valeur de propriété.
  • Setter : définit la façon dont une valeur de propriété est mise à jour.

7. Résumé

  • Les Classes offrent une manière moderne de créer des objets et de gérer leurs comportements à l'aide de méthodes.
  • L'Héritage permet à une classe d'hériter des propriétés et des méthodes d'une autre, ce qui facilite l'extension des fonctionnalités.
  • Le remplacement de méthode permet aux classes enfants de modifier ou d'étendre le comportement des classes parents.
  • JavaScript prend également en charge les méthodes statiques, les mixins et les fonctions getter/setter pour des fonctionnalités et une encapsulation améliorées.

Les classes et l'héritage sont des concepts essentiels dans la programmation orientée objet, et les comprendre vous aidera à écrire du code JavaScript plus propre et plus maintenable.

Bonjour, je m'appelle Abhay Singh Kathayat !
Je suis un développeur full-stack avec une expertise dans les technologies front-end et back-end. Je travaille avec une variété de langages et de frameworks de programmation pour créer des applications efficaces, évolutives et conviviales.
N'hésitez pas à me contacter à mon e-mail professionnel : kaashshorts28@gmail.com.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal