Maison  >  Article  >  interface Web  >  JavaScript à proprement parler n'a pas de classes

JavaScript à proprement parler n'a pas de classes

WBOY
WBOYoriginal
2023-05-20 22:36:08569parcourir

Avec la popularité et l'utilisation généralisée de JavaScript, de plus en plus de développeurs commencent à prêter attention à certaines fonctionnalités et limitations du langage de programmation JavaScript. L’une d’elles est de savoir s’il existe un concept de classe, ce qui est une question très controversée. Dans cet article, nous approfondirons ce sujet pour comprendre la véritable nature des classes JavaScript.

JavaScript est un langage de programmation très flexible doté de fonctionnalités puissantes, telles que les fermetures, les fonctions d'ordre supérieur et l'héritage prototypique, qui sont les principales fonctionnalités de JavaScript. Contrairement à d'autres langages de programmation, JavaScript a une complexité extrêmement élevée dans différents paradigmes. Est-ce un langage strictement orienté objet ?

Pour de nombreux développeurs, les classes sont de nombreux langages orientés objet. Les langages tels que Python, C# et Java possèdent des classes qui vous permettent de définir des propriétés, des méthodes et de créer de nouvelles instances. Les classes offrent certains des avantages de la réutilisabilité et de l'extensibilité du code, car elles permettent aux programmeurs de séparer le code en modules, abstractions et réutilisation. Mais quand on parle de JavaScript, à proprement parler, il n’existe pas de classe.

Qu'est-ce qu'une classe ?

Afin de mieux comprendre ce problème, nous devons d'abord comprendre ce qu'est une classe. Une classe est une représentation d'un modèle objet et d'une structure de données spéciale qui peut décrire les caractéristiques (propriétés) et le comportement (méthodes) d'un objet.

Dans la hiérarchie des classes, la classe parent supérieure définira certaines propriétés et méthodes communes, et ces propriétés et méthodes communes peuvent être héritées et utilisées par les sous-classes. Les sous-classes peuvent redéfinir ou hériter de ces propriétés et méthodes, et ajouter leurs propres propriétés et méthodes.

Par exemple, ce qui suit est un exemple de classe écrite en Java :

public class Person{
  private String name;
  private int age;
  
  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }
  
  public String getName() {
    return this.name;
  }
  
  public int getAge() {
    return this.age;
  }
  
  public void sayHello() {
    System.out.println("Hello, my name is " + this.name);
  }
}

Dans cet exemple, nous définissons une classe Person, qui contient les propriétés de nom et d'âge, et deux méthodes getName() et getAge(). Il dispose également d'une méthode sayHello(), qui imprime le nom de l'instance Person sur la console.

Objets en JavaScript

Certaines personnes peuvent penser que JavaScript est un langage entièrement orienté objet, ce qui est un malentendu. Bien que JavaScript utilise une structure syntaxique similaire aux classes, son modèle objet réel est basé sur des prototypes.

En JavaScript, les objets sont créés lors de l'exécution sur la base d'une fonction JavaScript. Il n'a pas de définition de classe explicite, mais utilise des constructeurs pour créer de nouveaux objets. À l'intérieur du constructeur, vous pouvez définir les propriétés et méthodes initiales d'un objet comme définition de base de l'objet.

Par exemple, l'exemple suivant est un objet Person défini par un constructeur JavaScript :

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.getName = function() {
  return this.name;
};

Person.prototype.getAge = function() {
  return this.age;
};

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

Comme vous pouvez le voir, un objet Person basé sur le constructeur est créé en JavaScript. Dans cette fonction, nous définissons les propriétés de nom et d'âge et les attribuons à l'objet nouvellement créé à l'aide du mot-clé "this". Ensuite, nous utilisons l'objet Person.prototype pour définir trois méthodes pour la personne nouvellement créée.

Héritage prototypique

En JavaScript, l'héritage est une manière non traditionnelle, implémentée à l'aide de l'héritage prototypique. L'héritage prototype est implémenté car tous les objets JavaScript ont un objet prototype.

Chaque objet JavaScript possède un objet prototype, qui contient les propriétés et les méthodes de l'objet. Lorsque l'on crée un nouvel objet, son prototype d'origine est vide et il hérite des membres du prototype du constructeur. Tous les autres objets peuvent continuer à définir leurs propres propriétés et méthodes.

Par exemple, le code suivant montre comment ajouter de nouvelles propriétés et méthodes à un objet créé via l'héritage prototypique :

function Person(name, age) {
  this.name = name;
  this.age = age;
}

Person.prototype.getName = function() {
  return this.name;
};

Person.prototype.getAge = function() {
  return this.age;
};

Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
};

Person.prototype.setAge = function(newAge) {
  this.age = newAge;
};

Dans cet exemple, nous ajoutons un objet appelé setAge( ) et ajoutez-la à l’objet prototype Person. Nous pouvons maintenant utiliser cette méthode pour définir un nouvel âge pour l'objet Person.

Conclusion

À proprement parler, JavaScript n'a pas de classe. Cela est dû à la conception particulière de JavaScript. En JavaScript, les objets sont créés sur la base de variables prototypes et l'héritage prototypique est utilisé pour implémenter la relation d'héritage entre les objets. En conséquence, JavaScript fournit un modèle de programmation très flexible, permettant aux programmeurs d'implémenter différents paradigmes de programmation dans différentes fonctions.

Le concept de base de la programmation orientée objet JavaScript n'est pas les classes, mais les objets. Par conséquent, lors de la mise en œuvre d'applications JavaScript complexes, vous devez maîtriser les compétences nécessaires pour créer et hériter d'objets en vous familiarisant avec le mécanisme d'héritage prototypique de JavaScript. C’est la clé pour écrire du code JavaScript efficace.

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!

Déclaration:
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
Article précédent:Comment maîtriser JavascriptArticle suivant:Comment maîtriser Javascript