Un objet ou en anglais object est en quelque sorte une collection de variables ayant un lien entre elles. Ces variables sont alors connues sous le nom de propriétés. Chacune de ces propriétés contient une valeur lui étant propre. Ces valeurs peuvent prendre la forme d'une chaine de caractères, d'un nombre, d'un booléen, d'un tableau, d'une fonction ou encore même d'un autre objet.

Par exemple dans la populaire série de jeu Mario Kart, un objet décrivant le véhicule de Peach pourrait ressembler à:

let peach = {
  type: "kart",
  speed: 9,
  turbo: 3
};

Toutes ces propriétés, type, speed et turbo ne sont ni plus ni moins que des variables JavaScript standards à la différence près qu'elles sont attachées à l'objet peach.

Cette particularité permet de créer plusieurs objets utilisant la même structure, soit les mêmes noms de variables sans problème.

Par exemple, afin de créer le véhicule de Yoshi sans écraser celui de Peach, il serait possible d'écrire:

let yoshi = {
  type: "bike",
  speed: 7,
  turbo: 4,
};

Accès aux propriétés

Il existe différentes façons d'accéder aux propriétés d'un objet. Néanmoins, la façon la plus simple et répandue consiste à séparer l'objet de la propriété désirée via le ..

Par exemple:

console.log(peach.speed); // 9

Il est aussi possible d'accéder à une propriété en la mettant entre crochets [].

Par exemple, le code suivant produit exactement le même résultat que le code précédent:

console.log(peach["speed"]); // 9

L'usage des crochets est particulièrement utile lorsque le nom de la propriété à accéder est stocké dans une variable.

Par exemple, le code suivant utilisant les crochets est fonctionnel:

const x = "speed";
peach[x]; // 9

Tandis que celui utilisant le . retourne undefined, car il cherche la propriété nommée x directement:

const x = "speed";
peach.x; // undefined

Ajout de propriétés

Lorsqu'un objet existe, il est facile de lui ajouter une propriété. Pour ce faire, il suffit de séparer l'objet de sa nouvelle propriété via le . et de lui attribuer sa valeur via le symbole =, comme pour une variable standard.

Par exemple:

peach.weight = 4;

Méthodes

Une méthode n'est ni plus ni moins qu'une fonction attribuée à une propriété d'un objet.

Par exemple, une méthode permettant de calculer la vitesse maximale du véhicule de Peach pourrait ressembler à:

let peach = {
  type: "kart",
  speed: 9,
  turbo: 3,
  maxSpeed: function() {
    return this.speed + this.turbo;
  }
};

Il serait ensuite possible d'appeler cette méthode ainsi:

peach.maxSpeed(); // 12

Dans le cadre de cet exemple, this fait référence à l'objet lui-même. Il est donc en quelque sorte l'équivalent de peach. Cependant, cette méthode pourrait-être copié à l'intérieur de l'objet yoshi et dans ce contexte, this ferait référence à yoshi.