Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Propriété (JavaScript)

Une propriété JavaScript est un membre d'un objet qui associe une clé à une valeur. Un objet JavaScript est une structure de données qui stocke un ensemble de propriétés.

Une propriété se compose des éléments suivants :

  • Un nom (aussi appelé clé), qui est soit une chaîne de caractères soit un symbole.
  • Une valeur, qui peut être n'importe quelle valeur JavaScript. Une propriété dont la valeur est une fonction peut aussi être appelée méthode.
  • Certains attributs, qui définissent comment la propriété peut être lue et modifiée. Une propriété peut avoir les attributs configurable, enumerable et writable.

La propriété d'accesseur n'a pas de « valeur » réelle. La valeur est représentée indirectement par une paire de fonctions, l'une (l'accesseur ou getter en anglais) appelée lors de la lecture de la valeur et l'autre (le mutateur ou setter en anglais) appelée lors de la modification de la valeur. Cependant, la propriété d'accesseur se comporte comme une propriété de données classique en surface, car les fonctions accesseur et mutateur sont appelées automatiquement et sont généralement transparentes pour le code JavaScript.

La valeur de la propriété (y compris l'accesseur et le mutateur) et ses attributs sont stockés dans une structure de données appelée descripteur de propriété. De nombreuses méthodes, telles que Object.getOwnPropertyDescriptor() et Object.defineProperty(), manipulent les descripteurs de propriété.

Le terme propriété lui-même ne correspond à aucune valeur JavaScript — c'est un concept abstrait. Par exemple, dans le code suivant :

js
const obj = {
  a: 1,
  b() {},
};

L'objet obj possède deux propriétés. La première a "a" comme clé et 1 comme valeur. La seconde a "b" comme clé et une fonction comme valeur (en utilisant la syntaxe de méthode). Les associations "a"1, "b"function sont les propriétés de l'objet.

Dans le contexte des classes, les propriétés peuvent être divisées en propriétés d'instance, qui appartiennent à chaque instance, et en propriétés statiques, qui appartiennent à la classe et contiennent des données communes à toutes les instances. Dans le contexte de l'héritage, les propriétés peuvent aussi être divisées en propriétés propres, qui appartiennent à l'objet lui-même, et en propriétés héritées, qui appartiennent aux objets de la chaîne de prototypes de l'objet.

Pour plus d'informations sur la lecture et la modification des propriétés, consultez Travailler avec les objets.