Technologie orientée objet ECMAScript

Terminologie orientée objet

Objet

ECMA-262 définit l'objet (object) comme « une collection désordonnée d'attributs, chaque attribut contenant une valeur primitive, un objet ou une fonction ». strictement parlant, cela signifie que l'objet est un tableau de valeurs sans ordre spécifique.

Bien que ECMAScript définisse les objets de cette manière, sa définition plus générale est basée sur la représentation de noms nominaux (personnes, lieux ou choses) par le code.

Classe

Chaque objet est défini par une classe, et la classe peut être considérée comme une recette d'objet. Une classe doit non seulement définir l'interface (interface) de l'objet (les attributs et les méthodes auxquels le développeur peut accéder), mais aussi définir le travail interne (le code qui fait fonctionner les attributs et les méthodes). Les compilateurs et les interpréteurs construisent des objets selon les descriptions de la classe.

Instance

Lorsque le programme crée des objets à l'aide de classes, les objets générés sont appelés instances de classes. La seule limitation unique du nombre d'instances générées par une classe vient de la mémoire physique du machine sur laquelle le code est exécuté. Chaque instance a un comportement identique, mais traite un ensemble de données indépendantes. Le processus de création d'instances d'objets par une classe est appelé instanciation.

Dans les chapitres précédents, nous avons mentionné que ECMAScript n'a pas de classes formelles. Au lieu de cela, ECMA-262 décrivait les objets comme des recettes d'objets. C'est une solution de compromis logique pour ECMAScript, car la définition d'objet est en fait l'objet lui-même. Même si les classes n'existent pas vraiment, nous appelons la définition d'objet une classe, car la plupart des développeurs sont plus familiers avec ce terme, et fonctionnellement, ils sont équivalents.

Exigences d'une langue orientée objet

Une langue orientée objet doit fournir quatre capacités de base au développeur :

  1. Encapsulation - Capacité de stocker des informations liées (que ce soit des données ou des méthodes) dans un objet
  2. Aggrégation - Capacité de stocker un objet à l'intérieur d'un autre objet
  3. Héritage - Capacité de recevoir des attributs et des méthodes d'une autre classe (ou de plusieurs classes)
  4. Polymorphisme - Capacité d'écrire des fonctions ou des méthodes qui peuvent fonctionner de plusieurs manières

ECMAScript soutient ces exigences, donc il peut être considéré comme orienté objet.

Constitution des objets

Dans ECMAScript, les objets sont constitués de caractéristiques (attributs), qui peuvent être des valeurs primitives ou des valeurs de référence. Si la caractéristique contient une fonction, elle est considérée comme une méthode de l'objet, sinon la caractéristique est considérée comme une propriété de l'objet.