[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Property_accessors [Back]  [Original]

Accesseurs de proprits - JavaScript | MDN

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

Accesseurs de proprits

Baseline Large disponibilit

Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Les accesseurs de proprit permettent de fournir un accs aux proprits d'un objet en utilisant une notation avec un point ou une notation avec des crochets

Dans cet article

Exemple interactif

const person1 = {};
person1["firstname"] = "Mario";
person1["lastname"] = "Rossi";

console.log(person1.firstname);
// Expected output: "Mario"

const person2 = {
  firstname: "John",
  lastname: "Doe",
};

console.log(person2["lastname"]);
// Expected output: "Doe"

Syntaxe

js
objet.proprit;
objet["proprit"];

Description

Les objets peuvent tre vus comme des tableaux associatifs (map, dictionnaires, table de hachage, annuaire, etc.). Les cls (keys) de ce tableau sont les noms des proprits de l'objet. Lorsqu'on parle d'objets, on fait gnralement une distinction entre les proprits et les mthodes. En ralit cette diffrence est plus de une convention qu' une relle distinction. En effet, une mthode est simplement une proprit qu'on peut appeler (sa valeur fera souvent rfrence une instance de Function).

Il existe deux faons d'accder aux proprits d'un objet : la notation avec point et la notation avec crochets.

Notation avec point

js
obtenir = objet.proprit;
objet.proprit = dfinir;

proprit doit tre un identifiant JavaScript valide, c'est--dire une squence de caractres alphanumriques, souligns ( _ ) et signes dollar ( $ ), qui ne peut commencer par un nombre. Par exemple, objet.$1 est valide, mais objet.1 ne l'est pas.

js
document.createElement("pre");

Ici, la mthode createElement est obtenue depuis l'objet document et est appele.

Si on utilise une mthode pour un littral numrique et que celui-ci ne possde pas de point dcimal ni d'exposant li la notation scientifique, il faudra laisser un ou plusieurs blancs afin que l'appel soit bien interprt comme un appel de mthode plutt que comme un sparateur dcimal :

js
(77).toExponential();
// ou
(77).toExponential();
// ou, mieux pour la lisibilit
(77).toExponential();
// ou encore
(77.0).toExponential();
// 77. correspond  77.0 et l il n'y a aucun doute

Notation avec crochets

js
obtenir = objet[nom_de_proprit];
objet[nom_de_proprit] = dfinir;

nom_de_proprit est une chane de caractres ou un symbole. Elle n'a pas besoin d'tre un identifiant valide ; elle peut avoir n'importe quelle valeur, par exemple "1foo", "!bar!" ou mme " " (une espace).

Exemple

js
document["createElement"]("pre");

Cette ligne fait exactement la mme chose que l'exemple prcdent.

Noms de proprits

Les noms de proprits doivent tre des chanes de caractres ou des symboles. Cela signifie que les autres types d'objet ne peuvent pas tre utiliss comme cls d'un objet. Tout autre type d'objet, mme un nombre, sera converti en une chane via sa mthode toString.

Exemples

js
var objet = {};
objet["1"] = "valeur";
console.log(objet[1]);

Ceci affichera  valeur , tant donn que le nombre 1 sera converti en une chane "1".

js
var toto = {proprit_unique : 1}, truc = {proprit_unique : 2}, objet = {};
objet[toto] = 'valeur';
console.log(objet[truc]);

Ce code affichera galement  valeur , tant donn que toto et truc seront convertis en la mme chane de caractres. Dans le cas du moteur JavaScript SpiderMonkey, cette chane serait "['object Object']".

Liaison de mthodes

Une mthode n'est pas lie l'objet dont elle est une mthode. En particulier, this n'est pas dfini dans une mthode, c'est--dire que this ne fait pas ncessairement rfrence un objet contenant la mthode. En ralit, this est  pass  par l'appel de la fonction.

Pour plus d'informations, consultez la page sur l'oprateur this et les liaisons de mthodes.

Note concernant eval

Les nouveaux venus en JavaScript font souvent l'erreur d'utiliser eval() alors que la notation avec crochets pourrait tre utilise. Par exemple, la syntaxe suivante est utilise dans de nombreux scripts.

js
x = eval("document.formulaire." + controle + ".value");

eval est lente et inscurise et devrait tre vite ds que possible. Il est prfrable d'utiliser la notation avec crochets :

js
x = document.formulaire[controle].value;

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-property-accessors

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page