diff options
| author | julieng <julien.gattelier@gmail.com> | 2021-08-03 08:03:23 +0200 |
|---|---|---|
| committer | SphinxKnight <SphinxKnight@users.noreply.github.com> | 2021-09-03 08:08:25 +0200 |
| commit | bf8e099b9c8b3c60d60b3712b4fc97b052c39887 (patch) | |
| tree | c101746d082c9581c94f5937519c7d0e2f4af8cb /files/fr/web/javascript/reference/global_objects/weakmap | |
| parent | 844f5103992238c0c23203286dad16a466e89c97 (diff) | |
| download | translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.gz translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.tar.bz2 translated-content-bf8e099b9c8b3c60d60b3712b4fc97b052c39887.zip | |
convert content to md
Diffstat (limited to 'files/fr/web/javascript/reference/global_objects/weakmap')
6 files changed, 196 insertions, 296 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/clear/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/clear/index.md index f270e94820..f08ccf1dad 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/clear/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/clear/index.md @@ -11,17 +11,18 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/clear --- -<div>{{JSRef}} {{obsolete_header}}</div> +{{JSRef}} {{obsolete_header}} -<p>La méthode <code><strong>clear()</strong></code> permettait de retirer tous les éléments d'un objet <code>WeakMap</code> mais celle-ci ne fait plus partie d'ECMAScript.</p> +La méthode **`clear()`** permettait de retirer tous les éléments d'un objet `WeakMap` mais celle-ci ne fait plus partie d'ECMAScript. -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><code><var>wm</var>.clear();</code></pre> + wm.clear(); -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">var wm = new WeakMap(); +```js +var wm = new WeakMap(); var obj = {}; wm.set(obj, "toto"); @@ -34,18 +35,16 @@ wm.clear(); wm.has(obj); // false wm.has(window); // false -</pre> +``` -<h2 id="Spécifications">Spécifications</h2> +## Spécifications -<p>Cette méthode ne fait partie d'aucune spécification ou brouillon. Cette méthode a fait partie du brouillon ECMAScript 6 jusqu'à la révision 28 (version du 14 octobre 2014) mais a été retiré par la suite. Cette méthode ne fait pas partie du standard final.</p> +Cette méthode ne fait partie d'aucune spécification ou brouillon. Cette méthode a fait partie du brouillon ECMAScript 6 jusqu'à la révision 28 (version du 14 octobre 2014) mais a été retiré par la suite. Cette méthode ne fait pas partie du standard final. -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> +## Compatibilité des navigateurs -<p>{{Compat("javascript.builtins.WeakMap.clear")}}</p> +{{Compat("javascript.builtins.WeakMap.clear")}} -<h2 id="Voir_aussi">Voir aussi</h2> +## Voir aussi -<ul> - <li>{{jsxref("WeakMap")}}</li> -</ul> +- {{jsxref("WeakMap")}} diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/delete/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/delete/index.md index 6f042da1f2..4fbde04d8b 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/delete/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/delete/index.md @@ -11,65 +11,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/delete original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/delete --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>La méthode <code><strong>delete()</strong></code> retire un élément donné de l'objet {{jsxref("WeakMap")}}.</p> +La méthode **`delete()`** retire un élément donné de l'objet {{jsxref("WeakMap")}}. -<div>{{EmbedInteractiveExample("pages/js/weakmap-prototype-delete.html")}}</div> +{{EmbedInteractiveExample("pages/js/weakmap-prototype-delete.html")}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><var>wm</var>.delete(<var>clé</var>);</pre> + wm.delete(clé); -<h3 id="Paramètre">Paramètre</h3> +### Paramètre -<dl> - <dt><code>clé</code></dt> - <dd>Il correspond à la clé de l'élément qu'on souhaite retirer de l'objet <code>WeakMap</code>.</dd> -</dl> +- `clé` + - : Il correspond à la clé de l'élément qu'on souhaite retirer de l'objet `WeakMap`. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p><code>true</code> si un élément de l'objet <code>WeakMap</code> a bien été retiré, <code>false</code> si la clé n'a pas été trouvée ou si la clé n'est pas un objet.</p> +`true` si un élément de l'objet `WeakMap` a bien été retiré, `false` si la clé n'a pas été trouvée ou si la clé n'est pas un objet. -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">var wm = new WeakMap(); +```js +var wm = new WeakMap(); wm.set(window, "toto"); wm.delete(window); // Renvoie true. La suppression a bien eu lieu. wm.has(window); // Renvoie false. L'objet window n'est plus dans la WeakMap. -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.WeakMap.delete")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("WeakMap")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}} | {{Spec2('ES2015')}} | Définition initiale | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.WeakMap.delete")}} + +## Voir aussi + +- {{jsxref("WeakMap")}} diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/get/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/get/index.md index 5b6165d7a1..6064f0c769 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/get/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/get/index.md @@ -11,66 +11,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/get original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/get --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>La méthode <code><strong>get()</strong></code> permet de renvoyer un élément donné d'un objet <code>WeakMap</code>.</p> +La méthode **`get()`** permet de renvoyer un élément donné d'un objet `WeakMap`. -<div>{{EmbedInteractiveExample("pages/js/weakmap-prototype-get.html")}}</div> +{{EmbedInteractiveExample("pages/js/weakmap-prototype-get.html")}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><var>wm</var>.get(<var>clé</var>);</pre> + wm.get(clé); -<h3 id="Paramètre">Paramètre</h3> +### Paramètre -<dl> - <dt><code>clé</code></dt> - <dd>Ce paramètre est obligatoire. Il correspond à la clé de l'élément qu'on souhaite récupérer depuis l'objet <code>WeakMap</code>.</dd> -</dl> +- `clé` + - : Ce paramètre est obligatoire. Il correspond à la clé de l'élément qu'on souhaite récupérer depuis l'objet `WeakMap`. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>L'élément associé à la clé donnée ou <code>undefined</code> si la clé ne peut pas être trouvée dans l'objet <code>WeakMap</code>.</p> +L'élément associé à la clé donnée ou `undefined` si la clé ne peut pas être trouvée dans l'objet `WeakMap`. -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">var wm = new WeakMap(); +```js +var wm = new WeakMap(); wm.set(window, "toto"); wm.get(window); // Renvoie "toto" wm.get("machin"); // Renvoie undefined. -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.WeakMap.get")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("WeakMap")}}</li> - <li>{{jsxref("WeakMap.set()")}}</li> - <li>{{jsxref("WeakMap.has()")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.WeakMap.get")}} + +## Voir aussi + +- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.set()")}} +- {{jsxref("WeakMap.has()")}} diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/has/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/has/index.md index 69fd37a8e4..4cfc9faac8 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/has/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/has/index.md @@ -11,66 +11,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/has original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/has --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>La méthode <code><strong>has()</strong></code> renvoie un booléen qui indique s'il existe (ou non) un élément avec une clé donnée au sein de l'objet <code>WeakMap</code>.</p> +La méthode **`has()`** renvoie un booléen qui indique s'il existe (ou non) un élément avec une clé donnée au sein de l'objet `WeakMap`. -<div>{{EmbedInteractiveExample("pages/js/weakmap-prototype-has.html")}}</div> +{{EmbedInteractiveExample("pages/js/weakmap-prototype-has.html")}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><var>wm</var>.has(<var>clé</var>);</pre> + wm.has(clé); -<h3 id="Paramètre">Paramètre</h3> +### Paramètre -<dl> - <dt><code>clé</code></dt> - <dd>Ce paramètre est obligatoire. Il correspond à la clé de l'élément dont on souhaite savoir s'il est présent dans l'objet <code>WeakMap</code>.</dd> -</dl> +- `clé` + - : Ce paramètre est obligatoire. Il correspond à la clé de l'élément dont on souhaite savoir s'il est présent dans l'objet `WeakMap`. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>La méthode renvoie <code>true</code> s'il existe un élément du <code>WeakMap</code> avec la clé donné, <code>false</code> sinon.</p> +La méthode renvoie `true` s'il existe un élément du `WeakMap` avec la clé donné, `false` sinon. -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">var wm = new WeakMap(); +```js +var wm = new WeakMap(); wm.set(window, "toto"); wm.has(window); // renvoie true wm.has("machin"); // renvoie false -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.WeakMap.has")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("WeakMap")}}</li> - <li>{{jsxref("WeakMap.prototype.set()")}}</li> - <li>{{jsxref("WeakMap.prototype.get()")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.WeakMap.has")}} + +## Voir aussi + +- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.prototype.set()")}} +- {{jsxref("WeakMap.prototype.get()")}} diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/index.md index 6dd5ddfcd3..ab6d2c13cd 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/index.md @@ -9,66 +9,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap --- -<div>{{JSRef}}</div> +{{JSRef}} -<p>L'objet <strong><code>WeakMap</code></strong> représente une collection de paires clé-valeur dont les clés sont des objets et pour lesquelles les références sont « faibles » et les valeurs des valeurs quelconques.</p> +L'objet **`WeakMap`** représente une collection de paires clé-valeur dont les clés sont des objets et pour lesquelles les références sont « faibles » et les valeurs des valeurs quelconques. -<div class="note"> -<p><strong>Note :</strong> vous pouvez en savoir plus sur les <code>WeakMap</code> en lisant l'article sur <a href="/fr/docs/Web/JavaScript/Guide/Collections_avec_clés#Le_type_WeakMap">les collections à clé</a>.</p> -</div> +> **Note :** vous pouvez en savoir plus sur les `WeakMap` en lisant l'article sur [les collections à clé](/fr/docs/Web/JavaScript/Guide/Collections_avec_clés#Le_type_WeakMap). -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox">new WeakMap([<var>itérable</var>]) -</pre> + new WeakMap([itérable]) -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<dl> - <dt><code>itérable</code></dt> - <dd>Paramètre optionnel. Un tableau (objet <code>Array</code>) ou tout autre objet itérable dont les éléments sont des paires composées d'une clé et d'une valeur (des tableaux de 2 éléments). Chaque paire sera ajoutée à la carte (<em>map</em> en anglais). {{jsxref("null")}} sera traité comme {{jsxref("undefined")}}.</dd> -</dl> +- `itérable` + - : Paramètre optionnel. Un tableau (objet `Array`) ou tout autre objet itérable dont les éléments sont des paires composées d'une clé et d'une valeur (des tableaux de 2 éléments). Chaque paire sera ajoutée à la carte (_map_ en anglais). {{jsxref("null")}} sera traité comme {{jsxref("undefined")}}. -<h2 id="Description">Description</h2> +## Description -<p>Les clés des objets <code>WeakMap</code> sont nécessairement du type <code>Object</code>. {{Glossary("Primitive", "Des types de données primitifs")}} ne sont pas autorisés pour les clés (ex : un {{jsxref("Symbol")}} ne peut pas être une clé dans un <code>WeakMap</code>).</p> +Les clés des objets `WeakMap` sont nécessairement du type `Object`. {{Glossary("Primitive", "Des types de données primitifs")}} ne sont pas autorisés pour les clés (ex : un {{jsxref("Symbol")}} ne peut pas être une clé dans un `WeakMap`). -<p>Les clés d'une <code>WeakMap</code> sont référencées <em>faiblement</em>. Cela signifie que s'il n'existe aucune autre référence « forte » vers la clé, l'élément (la clé et la valeur) sera retiré de la <code>WeakMap</code> par le ramasse-miettes.</p> +Les clés d'une `WeakMap` sont référencées _faiblement_. Cela signifie que s'il n'existe aucune autre référence « forte » vers la clé, l'élément (la clé et la valeur) sera retiré de la `WeakMap` par le ramasse-miettes. -<h3 id="Pourquoi_WeakMap">Pourquoi <em>Weak</em>Map ?</h3> +### Pourquoi *Weak*Map ? -<p>Avec un certain recul, on peut voir que cette API aurait pu être implémentée en JavaScript grâce à deux tableaux (un tableau pour stocker les clés, l'autre pour les valeurs) associées à 4 méthodes.</p> +Avec un certain recul, on peut voir que cette API aurait pu être implémentée en JavaScript grâce à deux tableaux (un tableau pour stocker les clés, l'autre pour les valeurs) associées à 4 méthodes. -<p>Une telle implémentation présente deux inconvénients principaux. Le premier est que la recherche serait effectué en O(n) (avec n le nombre de clés). Le second inconvénient concerne les fuites mémoires. Si la carte (<em>map</em>) est construite manuellement, le tableau contenant les clés serait obligé de garder les références vers les objets que sont les clés, ce qui les empêcheraient d'être nettoyés par le ramasse-miette. Grâce aux objets natifs <code>WeakMap</code>, les références vers les clés sont faibles (<em>weak</em>) ce qui permet au ramasse miette de nettoyer l'objet au cas où il n'y aurait pas d'autres références vers cet objet.</p> +Une telle implémentation présente deux inconvénients principaux. Le premier est que la recherche serait effectué en O(n) (avec n le nombre de clés). Le second inconvénient concerne les fuites mémoires. Si la carte (_map_) est construite manuellement, le tableau contenant les clés serait obligé de garder les références vers les objets que sont les clés, ce qui les empêcheraient d'être nettoyés par le ramasse-miette. Grâce aux objets natifs `WeakMap`, les références vers les clés sont faibles (_weak_) ce qui permet au ramasse miette de nettoyer l'objet au cas où il n'y aurait pas d'autres références vers cet objet. -<p>Étant donné que les références sont faibles, il est impossible d'énumérer les clés des objets <code>WeakMap</code> (c'est-à-dire qu'on ne dispose pas d'une méthode renvoyant la liste des clés). Si c'était le cas, la liste dépendrait d'un état lié au ramasse-miette et il n'y aurait pas de façon déterministe de connaître le résultat. Si vous souhaitez avoir une liste de clés, vous devriez plutôt utiliser un objet {{jsxref("Map")}}.</p> +Étant donné que les références sont faibles, il est impossible d'énumérer les clés des objets `WeakMap` (c'est-à-dire qu'on ne dispose pas d'une méthode renvoyant la liste des clés). Si c'était le cas, la liste dépendrait d'un état lié au ramasse-miette et il n'y aurait pas de façon déterministe de connaître le résultat. Si vous souhaitez avoir une liste de clés, vous devriez plutôt utiliser un objet {{jsxref("Map")}}. -<h2 id="Propriétés">Propriétés</h2> +## Propriétés -<dl> - <dt><code>WeakMap.length</code></dt> - <dd>La valeur de la propriété <code>length</code> vaut 0.</dd> - <dt>{{jsxref("WeakMap.prototype")}}</dt> - <dd>Cette propriété représente le prototype du constructeur <code>WeakMap</code>. Il permet d'ajouter des propriétés pour toutes les instances de <code>WeakMap</code>.</dd> -</dl> +- `WeakMap.length` + - : La valeur de la propriété `length` vaut 0. +- {{jsxref("WeakMap.prototype")}} + - : Cette propriété représente le prototype du constructeur `WeakMap`. Il permet d'ajouter des propriétés pour toutes les instances de `WeakMap`. -<h2 id="Instances_de_WeakMap">Instances de <code>WeakMap</code></h2> +## Instances de `WeakMap` -<p>Toutes les instances de <code>WeakMap</code> héritent de {{jsxref("WeakMap.prototype")}}.</p> +Toutes les instances de `WeakMap` héritent de {{jsxref("WeakMap.prototype")}}. -<h3 id="Propriétés_2">Propriétés</h3> +### Propriétés -<p>{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype','Properties')}}</p> +{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype','Properties')}} -<h3 id="Méthodes">Méthodes</h3> +### Méthodes -<p>{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype','Methods')}}</p> +{{page('fr/docs/Web/JavaScript/Reference/Objets_globaux/WeakMap/prototype','Methods')}} -<h2 id="Exemples">Exemples</h2> +## Exemples -<h3 id="Utiliser_WeakMap">Utiliser <code>WeakMap</code></h3> +### Utiliser `WeakMap` -<pre class="brush: js">var wm1 = new WeakMap(), +```js +var wm1 = new WeakMap(), wm2 = new WeakMap(), wm3 = new WeakMap(); var o1 = {}, @@ -95,12 +89,12 @@ wm3.get(o1); // 37 wm1.has(o1); // true wm1.delete(o1); wm1.has(o1); // false +``` -</pre> +### Implémenter une classe semblable à `WeakMap` avec une méthode .clear() -<h3 id="Implémenter_une_classe_semblable_à_WeakMap_avec_une_méthode_.clear()">Implémenter une classe semblable à <code>WeakMap</code> avec une méthode .clear()</h3> - -<pre class="brush: js">class ClearableWeakMap { +```js +class ClearableWeakMap { constructor(init) { this._wm = new WeakMap(init) } @@ -121,42 +115,23 @@ wm1.has(o1); // false return this } } -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-weakmap-objects', 'WeakMap')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-weakmap-objects', 'WeakMap')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale.</td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.WeakMap")}}</p> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li><a class="link-https" href="/fr/docs/Web/JavaScript/Guide/Collections_avec_clés#Le_type_WeakMap">Le guide sur les collections à clé JavaScript</a></li> - <li><a href="https://fitzgeraldnick.com/weblog/53/">Masquer des détails d'implémentation avec les WeakMaps ECMAScript 2015</a> (en anglais)</li> - <li>{{jsxref("Map")}}</li> - <li>{{jsxref("Set")}}</li> - <li>{{jsxref("WeakSet")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| ---------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ESDraft', '#sec-weakmap-objects', 'WeakMap')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES2015', '#sec-weakmap-objects', 'WeakMap')}} | {{Spec2('ES2015')}} | Définition initiale. | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.WeakMap")}} + +## Voir aussi + +- [Le guide sur les collections à clé JavaScript](/fr/docs/Web/JavaScript/Guide/Collections_avec_clés#Le_type_WeakMap) +- [Masquer des détails d'implémentation avec les WeakMaps ECMAScript 2015](https://fitzgeraldnick.com/weblog/53/) (en anglais) +- {{jsxref("Map")}} +- {{jsxref("Set")}} +- {{jsxref("WeakSet")}} diff --git a/files/fr/web/javascript/reference/global_objects/weakmap/set/index.md b/files/fr/web/javascript/reference/global_objects/weakmap/set/index.md index 40181140c0..8951eaa897 100644 --- a/files/fr/web/javascript/reference/global_objects/weakmap/set/index.md +++ b/files/fr/web/javascript/reference/global_objects/weakmap/set/index.md @@ -11,32 +11,31 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/set original_slug: Web/JavaScript/Reference/Objets_globaux/WeakMap/set --- -<div>s{{JSRef}}</div> +s{{JSRef}} -<p>La méthode <code><strong>set()</strong></code> permet d'ajouter un nouvel élément avec une <code>clé</code> et une <code>valeur</code> à un objet <code>WeakMap</code>.</p> +La méthode **`set()`** permet d'ajouter un nouvel élément avec une `clé` et une `valeur` à un objet `WeakMap`. -<div>{{EmbedInteractiveExample("pages/js/weakmap-prototype-set.html")}}</div> +{{EmbedInteractiveExample("pages/js/weakmap-prototype-set.html")}} -<h2 id="Syntaxe">Syntaxe</h2> +## Syntaxe -<pre class="syntaxbox"><var>wm</var>.set(<var>clé</var>, <var>valeur</var>);</pre> + wm.set(clé, valeur); -<h3 id="Paramètres">Paramètres</h3> +### Paramètres -<dl> - <dt><code>clé</code></dt> - <dd>Ce paramètre est obligatoire et doit être un objet. Il correspond à la clé de l'élément qu'on souhaite ajouter à l'objet <code>WeakMap</code>.</dd> - <dt><code>valeur</code></dt> - <dd>Ce paramètre est obligatoire et peut avoir n'importe quel type. Il correspond à la valeur de l'élément qu'on souhaite ajouter à l'objet <code>WeakMap</code>.</dd> -</dl> +- `clé` + - : Ce paramètre est obligatoire et doit être un objet. Il correspond à la clé de l'élément qu'on souhaite ajouter à l'objet `WeakMap`. +- `valeur` + - : Ce paramètre est obligatoire et peut avoir n'importe quel type. Il correspond à la valeur de l'élément qu'on souhaite ajouter à l'objet `WeakMap`. -<h3 id="Valeur_de_retour">Valeur de retour</h3> +### Valeur de retour -<p>Cette méthode renvoie l'objet <code>WeakMap</code> potentiellement mis à jour.</p> +Cette méthode renvoie l'objet `WeakMap` potentiellement mis à jour. -<h2 id="Exemples">Exemples</h2> +## Exemples -<pre class="brush: js">var wm = new WeakMap(); +```js +var wm = new WeakMap(); var obj = {}; // Ajouter un nouvel élément à la WeakMap @@ -44,44 +43,25 @@ wm.set(obj, "toto").set(window, "truc"); // on peut chaîner les instructions // Mettre à jour un élément de la WeakMap wm.set(obj, "machin"); -</pre> - -<h2 id="Spécifications">Spécifications</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Spécification</th> - <th scope="col">État</th> - <th scope="col">Commentaires</th> - </tr> - <tr> - <td>{{SpecName('ES2015', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}</td> - <td>{{Spec2('ES2015')}}</td> - <td>Définition initiale.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td></td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2> - -<p>{{Compat("javascript.builtins.WeakMap.set")}}</p> - -<h2 id="Notes_relatives_à_Firefox">Notes relatives à Firefox</h2> - -<ul> - <li>Avant Firefox 33 {{geckoRelease("33")}}, <code>WeakMap.prototype.set</code> renvoyait <code>undefined</code> et ne pouvait donc pas être utilisé à la chaîne (voir l'exemple ci-avant). Ceci a été corrigé avec le {{bug(1031632)}}. Ce comportement a été le même pour Chrome/v8 et fut également corrigé (<a href="https://code.google.com/p/v8/issues/detail?id=3410">issue</a>).</li> -</ul> - -<h2 id="Voir_aussi">Voir aussi</h2> - -<ul> - <li>{{jsxref("WeakMap")}}</li> - <li>{{jsxref("WeakMap.prototype.get()")}}</li> - <li>{{jsxref("WeakMap.prototype.has()")}}</li> -</ul> +``` + +## Spécifications + +| Spécification | État | Commentaires | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}} | {{Spec2('ES2015')}} | Définition initiale. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}} | {{Spec2('ESDraft')}} | | + +## Compatibilité des navigateurs + +{{Compat("javascript.builtins.WeakMap.set")}} + +## Notes relatives à Firefox + +- Avant Firefox 33 {{geckoRelease("33")}}, `WeakMap.prototype.set` renvoyait `undefined` et ne pouvait donc pas être utilisé à la chaîne (voir l'exemple ci-avant). Ceci a été corrigé avec le {{bug(1031632)}}. Ce comportement a été le même pour Chrome/v8 et fut également corrigé ([issue](https://code.google.com/p/v8/issues/detail?id=3410)). + +## Voir aussi + +- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.prototype.get()")}} +- {{jsxref("WeakMap.prototype.has()")}} |
