From bf8e099b9c8b3c60d60b3712b4fc97b052c39887 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:23 +0200 Subject: convert content to md --- .../index.md | 650 +++++++++++++-------- 1 file changed, 410 insertions(+), 240 deletions(-) (limited to 'files/fr/web/javascript/enumerability_and_ownership_of_properties') diff --git a/files/fr/web/javascript/enumerability_and_ownership_of_properties/index.md b/files/fr/web/javascript/enumerability_and_ownership_of_properties/index.md index a2a24711a8..cad3505a3d 100644 --- a/files/fr/web/javascript/enumerability_and_ownership_of_properties/index.md +++ b/files/fr/web/javascript/enumerability_and_ownership_of_properties/index.md @@ -8,161 +8,332 @@ tags: translation_of: Web/JavaScript/Enumerability_and_ownership_of_properties original_slug: Web/JavaScript/Caractère_énumérable_des_propriétés_et_rattachement --- -
{{JsSidebar("More")}}
+{{JsSidebar("More")}} -

Les propriétés dites « énumérables » sont celles pour lesquelles la caractéristique interne [[Enumerable]] vaut true. C'est le cas par défaut pour les propriétés qui sont créées grâce à une affectation simple ou grâce à un initialisateur de propriété. Les propriétés définies avec des méthodes analogues à {{jsxref("Object.defineProperty()")}} auront [[Enumerable]] à false). Les propriétés énumérables sont celles qui seront parcourues dans une boucle {{jsxref("Instructions/for...in","for..in")}} (sauf si le nom de la propriété est un {{jsxref("Symbol")}}).

+Les propriétés dites « énumérables » sont celles pour lesquelles la caractéristique interne `[[Enumerable]]` vaut `true`. C'est le cas par défaut pour les propriétés qui sont créées grâce à une affectation simple ou grâce à un initialisateur de propriété. Les propriétés définies avec des méthodes analogues à {{jsxref("Object.defineProperty()")}} auront `[[Enumerable]]` à `false`). Les propriétés énumérables sont celles qui seront parcourues dans une boucle {{jsxref("Instructions/for...in","for..in")}} (sauf si le nom de la propriété est un {{jsxref("Symbol")}}). -

Le rattachement des propriétés est détérminé selon que la propriété est directement rattachée à l'objet et non à sa chaîne de prototypes. Il est également possible de récupérer l'ensemble des propriétés d'un objet. Dans le tableau suivant, on détaille les moyens possibles pour détecter, parcourir, énumérer, récupérer les propriétés d'un objet.

+Le rattachement des propriétés est détérminé selon que la propriété est directement rattachée à l'objet et non à sa chaîne de prototypes. Il est également possible de récupérer l'ensemble des propriétés d'un objet. Dans le tableau suivant, on détaille les moyens possibles pour détecter, parcourir, énumérer, récupérer les propriétés d'un objet. - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +
Caractère énumérable et rattachement - méthodes natives pour détecter, récupérer et parcourir les propriétés
FonctionnalitéRattachement direct à l'objetRattachement direct à l'objet et sur la chaîne de prototypesUniquement sur la chaîne de prototypes
Détection - - - - - - - - - - - - - - - -
ÉnumérablesNon-énumérablesToutes
-

propertyIsEnumerable()

- -

hasOwnProperty()

-
hasOwnProperty() - en utilisant propertyIsEnumerable() afin d'exclure les propriétés énumérableshasOwnProperty()
-
- - - - - - - - - - - - - - - -
ÉnumerablesNon-énumérablesToutes
Cette fonctionnalité n'est pas disponible sans code supplémentaire.Cette fonctionnalité n'est pas disponible sans code supplémentaire.in
-
Cette fonctionnalité n'est pas disponible sans code supplémentaire.
Récupération - - - - - - - - - - - - - - - -
ÉnumérablesNon-énumérablesToutes
-

Object.keys()

- -

getOwnPropertyNames()

- -

getOwnPropertySymbols()

-
getOwnPropertyNames() getOwnPropertySymbols() en utilisant propertyIsEnumerable() afin d'exclure les propriétés énumérables -

getOwnPropertyNames()

- -

getOwnPropertySymbols()

-
-
Cette fonctionnalité n'est pas disponible sans code supplémentaire.Cette fonctionnalité n'est pas disponible sans code supplémentaire.
Parcours - - - - - - - - - - - - - - - -
ÉnumérablesNon-énumérablesToutes
-

Object.keys()

- -

getOwnPropertyNames()

- -

getOwnPropertySymbols()

-
getOwnPropertyNames() - getOwnPropertySymbols()en utilisant propertyIsEnumerable() afin d'exclure les propriétés énumérables -

getOwnPropertyNames()

- -

getOwnPropertySymbols()

-
-
- - - - - - - - - - - - - - - -
ÉnumerablesNon-énumérablesToutes
for..inCette fonctionnalité n'est pas disponible sans code supplémentaire.Cette fonctionnalité n'est pas disponible sans code supplémentaire.
-
Cette fonctionnalité n'est pas disponible sans code supplémentaire.
+ Caractère énumérable et rattachement - méthodes natives pour détecter, + récupérer et parcourir les propriétés +
FonctionnalitéRattachement direct à l'objetRattachement direct à l'objet et sur la chaîne de prototypesUniquement sur la chaîne de prototypes
Détection + + + + + + + + + + + + + + + +
ÉnumérablesNon-énumérablesToutes
+

+ propertyIsEnumerable() +

+

+ hasOwnProperty() +

+
+ hasOwnProperty() + - en utilisant propertyIsEnumerable() + afin d'exclure les propriétés énumérables + + hasOwnProperty() +
+
+ + + + + + + + + + + + + + + +
ÉnumerablesNon-énumérablesToutes
+ Cette fonctionnalité n'est pas disponible sans code + supplémentaire. + + Cette fonctionnalité n'est pas disponible sans code + supplémentaire. + + in +
+
+ Cette fonctionnalité n'est pas disponible sans code supplémentaire. +
Récupération + + + + + + + + + + + + + + + +
ÉnumérablesNon-énumérablesToutes
+

+ Object.keys() +

+

+ getOwnPropertyNames() +

+

+ getOwnPropertySymbols() +

+
+ getOwnPropertyNames() + getOwnPropertySymbols() en utilisant propertyIsEnumerable() + afin d'exclure les propriétés énumérables + +

+ getOwnPropertyNames() +

+

+ getOwnPropertySymbols() +

+
+
+ Cette fonctionnalité n'est pas disponible sans code supplémentaire. + + Cette fonctionnalité n'est pas disponible sans code supplémentaire. +
Parcours + + + + + + + + + + + + + + + +
ÉnumérablesNon-énumérablesToutes
+

+ Object.keys() +

+

+ getOwnPropertyNames() +

+

+ getOwnPropertySymbols() +

+
+ getOwnPropertyNames() + - + getOwnPropertySymbols()en utilisant propertyIsEnumerable() + afin d'exclure les propriétés énumérables + +

+ getOwnPropertyNames() +

+

+ getOwnPropertySymbols() +

+
+
+ + + + + + + + + + + + + + + +
ÉnumerablesNon-énumérablesToutes
+ for..in + + Cette fonctionnalité n'est pas disponible sans code + supplémentaire. + + Cette fonctionnalité n'est pas disponible sans code + supplémentaire. +
+
+ Cette fonctionnalité n'est pas disponible sans code supplémentaire. +
-

Obtenir les propriétés selon leur caractère énumérable et selon leur rattachement

+## Obtenir les propriétés selon leur caractère énumérable et selon leur rattachement -

Dans la plupart des cas, ce n'est pas l'algorithme le plus efficace mais il est présenté ici à des fins explicatives.

+Dans la plupart des cas, ce n'est pas l'algorithme le plus efficace mais il est présenté ici à des fins explicatives. - +- On peut détecter la présence d'une propriété grâce à `RecuperateurDePropriete.laMethodeSouhaitee(obj).indexOf(prop) > -1` +- On peut parcourir les propriétés souhaitées avec `RecuperateurDePropriete.laMethodeSouhaitee(obj).forEach(function (value, prop) {});` (on peut aussi utiliser `filter()`, `map()`, etc.) -
var RecuperateurDePropriete = {
+```js
+var RecuperateurDePropriete = {
     getOwnEnumerables: function (obj) {
         return this._getPropertyNames(obj, true, false, this._enumerable);
          // On pourrait également utiliser for..in qu'on filtre avec hasOwnProperty
@@ -211,7 +382,7 @@ original_slug: Web/JavaScript/Caractère_énumérable_des_propriétés_et_rattac
         do {
             if (iterateSelfBool) {
                 Object.getOwnPropertyNames(obj).forEach(function (prop) {
-                    if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) {
+                    if (props.indexOf(prop) === -1 && includePropCb(obj, prop)) {
                         props.push(prop);
                     }
                 });
@@ -224,102 +395,101 @@ original_slug: Web/JavaScript/Caractère_énumérable_des_propriétés_et_rattac
 
         return props;
     }
-};
+}; +``` -

Tableau de détection

+## Tableau de détection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
infor..inobj.hasOwnProperty()obj.propertyIsEnumerable()Object.keys()Object.getOwnPropertyNames()Object.getOwnPropertyDescriptors()Reflect.ownKeys()
Propriétés énumérablestruetruetruetruetruetruetruetrue
Propriétés non-énumérablestruefalsetruefalsefalsetruetruetrue
Propriétés dont les clés sont des symbolestruefalsetruefalsefalsefalsetruetrue
Propriétés héritées et énumérablestruetruefalsefalsefalsefalsefalsefalse
Propriétés héritées et non-énumérablestruefalsefalsefalsefalsefalsefalsefalse
Propriétés héritées dont les clés sont des symbolestruefalsefalsefalsefalsefalsefalsefalse
infor..inobj.hasOwnProperty()obj.propertyIsEnumerable()Object.keys()Object.getOwnPropertyNames()Object.getOwnPropertyDescriptors()Reflect.ownKeys()
Propriétés énumérablestruetruetruetruetruetruetruetrue
Propriétés non-énumérablestruefalsetruefalsefalsetruetruetrue
Propriétés dont les clés sont des symbolestruefalsetruefalsefalsefalsetruetrue
Propriétés héritées et énumérablestruetruefalsefalsefalsefalsefalsefalse
Propriétés héritées et non-énumérablestruefalsefalsefalsefalsefalsefalsefalse
Propriétés héritées dont les clés sont des symbolestruefalsefalsefalsefalsefalsefalsefalse
-

Voir aussi

+## Voir aussi - +- [`in`](/fr/docs/Web/JavaScript/Reference/Opérateurs/L_opérateur_in) +- [`for..in`](/fr/docs/Web/JavaScript/Reference/Instructions/for...in) +- {{jsxref("Object.hasOwnProperty()")}} +- {{jsxref("Object.propertyIsEnumerable()")}} +- {{jsxref("Object.getOwnPropertyNames()")}} +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.getOwnPropertyDescriptors()")}} -- cgit v1.2.3-54-g00ecf