From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/javascript/handler.enumerate/index.html | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 files/fr/archive/web/javascript/handler.enumerate/index.html (limited to 'files/fr/archive/web/javascript/handler.enumerate') diff --git a/files/fr/archive/web/javascript/handler.enumerate/index.html b/files/fr/archive/web/javascript/handler.enumerate/index.html new file mode 100644 index 0000000000..40dbd33345 --- /dev/null +++ b/files/fr/archive/web/javascript/handler.enumerate/index.html @@ -0,0 +1,121 @@ +--- +title: handler.enumerate() +slug: Archive/Web/JavaScript/handler.enumerate +tags: + - ECMAScript 2015 + - JavaScript + - Méthode + - Obsolete + - Proxy + - Reference +translation_of: Archive/Web/JavaScript/handler.enumerate +--- +
{{JSRef}} {{obsolete_header}}
+ +

La méthode handler.enumerate() représente une trappe pour les instructions {{jsxref("Instructions/for...in", "for...in")}}. Elle a été retirée du standard ECMAScript avec la septième édition (ES2016) et est dépréciée pour les navigateurs.

+ +

Syntaxe

+ +
var p = new Proxy(cible, {
+  enumerate(cible) {
+  }
+});
+
+ +

Paramètres

+ +

Le paramètre suivant est passé à la méthode enumerate. this est lié au gestionnaire.

+ +
+
cible
+
L'objet cible.
+
+ +

Valeur de retour

+ +

La méthode enumerate renvoie un objet itérateur.

+ +

Description

+ +

La méthode handler.enumerate est une trappe permettant d'intercepter les instructions {{jsxref("Instructions/for...in", "for...in")}}.

+ +

Interceptions

+ +

Cette trappe peut intercepter les opérations suivantes :

+ + + +

Invariants

+ +

Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :

+ + + +

Exemples

+ +

Dans l'exemple qui suit, on intercepte l'instruction {{jsxref("Instructions/for...in", "for...in")}}.

+ +
var p = new Proxy({}, {
+  enumerate(cible) {
+    console.log("appelé");
+    return ["a", "b", "c"][Symbol.iterator]();
+  }
+});
+
+for (var x in p) { // "appelé"
+  console.log(x);  // "a"
+}                  // "b"
+                   // "c"
+
+ +

Dans le code suivant, on ne respecte pas l'invariant.

+ +
var p = new Proxy({}, {
+  enumerate(cible) {
+    return 1;
+  }
+});
+
+for (var x in p) {} // exception TypeError levée
+
+ +

Note : Ces deux exemples utilisent la notation raccourcie pour les définitions de méthode.

+ +

Spécifications

+ + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-enumerate', '[[Enumerate]]')}}{{Spec2('ES2015')}}Définition initiale. Retirée avec ECMAScript 2016 (ES7).
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.builtins.Proxy.handler.enumerate")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf