aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/javascript/reference/global_objects/proxy
diff options
context:
space:
mode:
authorjulieng <julien.gattelier@gmail.com>2021-08-03 08:03:23 +0200
committerSphinxKnight <SphinxKnight@users.noreply.github.com>2021-09-03 08:08:25 +0200
commitbf8e099b9c8b3c60d60b3712b4fc97b052c39887 (patch)
treec101746d082c9581c94f5937519c7d0e2f4af8cb /files/fr/web/javascript/reference/global_objects/proxy
parent844f5103992238c0c23203286dad16a466e89c97 (diff)
downloadtranslated-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/proxy')
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/index.md208
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/apply/index.md123
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/construct/index.md134
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.md148
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.md115
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/get/index.md128
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md132
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/getprototypeof/index.md131
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/has/index.md128
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/index.md121
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.md118
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.md128
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/preventextensions/index.md118
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/set/index.md127
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/proxy/setprototypeof/index.md125
-rw-r--r--files/fr/web/javascript/reference/global_objects/proxy/revocable/index.md87
16 files changed, 875 insertions, 1196 deletions
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/index.md b/files/fr/web/javascript/reference/global_objects/proxy/index.md
index d02e303881..b2cbf0db65 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/index.md
@@ -9,55 +9,49 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>L'objet <strong>Proxy</strong> est utilisé afin de définir un comportement sur mesure pour certaines opérations fondamentales (par exemple, l'accès aux propriétés, les affectations, les énumérations, les appels de fonctions, etc.).</p>
+L'objet **Proxy** est utilisé afin de définir un comportement sur mesure pour certaines opérations fondamentales (par exemple, l'accès aux propriétés, les affectations, les énumérations, les appels de fonctions, etc.).
-<h2 id="Terminologie">Terminologie</h2>
+## Terminologie
-<dl>
- <dt><a href="/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler">gestionnaire</a> (<em>handler</em>)</dt>
- <dd>Un objet qui contient les trappes qui intercepteront les opérations.</dd>
- <dt>trappes</dt>
- <dd>Les méthodes qui fournissent l'accès aux propriétés. Ce concept est analogue aux <a href="https://en.wikipedia.org/wiki/Trap_%28computing%29">trappes</a> utilisées dans les systèmes d'exploitations.</dd>
- <dt>cible</dt>
- <dd>L'objet virtualisé par le proxy. Il est souvent utilisé comme objet de stockage. Les invariants (c'est-à-dire les éléments de sémantique qui restent inchangés) relatifs à la non-extensibilité et au caractère non-configurable des propriétés sont vérifiés par rapport à la cible.</dd>
-</dl>
+- [gestionnaire](/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler) (_handler_)
+ - : Un objet qui contient les trappes qui intercepteront les opérations.
+- trappes
+ - : Les méthodes qui fournissent l'accès aux propriétés. Ce concept est analogue aux [trappes](https://en.wikipedia.org/wiki/Trap_%28computing%29) utilisées dans les systèmes d'exploitations.
+- cible
+ - : L'objet virtualisé par le proxy. Il est souvent utilisé comme objet de stockage. Les invariants (c'est-à-dire les éléments de sémantique qui restent inchangés) relatifs à la non-extensibilité et au caractère non-configurable des propriétés sont vérifiés par rapport à la cible.
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="syntaxbox">var p = new Proxy(cible, gestionnaire);
-</pre>
+ var p = new Proxy(cible, gestionnaire);
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<dl>
- <dt><code>cible</code></dt>
- <dd>Une cible (qui peut être n'importe quel objet, un tableau, une fonction, ou même un autre proxy) qu'on souhaite envelopper dans un <code>Proxy</code>.</dd>
- <dt><code>gestionnaire</code></dt>
- <dd>Un objet dont les propriétés sont des fonctions qui définissent le comportement du proxy lorsqu'on utilise une opération sur celui-ci.</dd>
-</dl>
+- `cible`
+ - : Une cible (qui peut être n'importe quel objet, un tableau, une fonction, ou même un autre proxy) qu'on souhaite envelopper dans un `Proxy`.
+- `gestionnaire`
+ - : Un objet dont les propriétés sont des fonctions qui définissent le comportement du proxy lorsqu'on utilise une opération sur celui-ci.
-<h2 id="Méthodes">Méthodes</h2>
+## Méthodes
-<dl>
- <dt>{{jsxref("Proxy.revocable()")}}</dt>
- <dd>Permet de créer un objet <code>Proxy</code> révocable.</dd>
-</dl>
+- {{jsxref("Proxy.revocable()")}}
+ - : Permet de créer un objet `Proxy` révocable.
-<h2 id="Méthodes_pour_le_gestionnaire">Méthodes pour le gestionnaire</h2>
+## Méthodes pour le gestionnaire
-<p>L'objet utilisé comme gestionnaire regroupe les différentes fonctions « trappes » pour le <code>Proxy</code>.</p>
+L'objet utilisé comme gestionnaire regroupe les différentes fonctions « trappes » pour le `Proxy`.
-<div>{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler', 'Méthodes') }}</div>
+{{page('/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy/handler', 'Méthodes') }}
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<h3 id="Exemple_simple">Exemple simple</h3>
+### Exemple simple
-<p>Dans ce court exemple, on renvoie le nombre <code>37</code> comme valeur par défaut lorsque la propriété nommée n'est pas présente dans l'objet. Pour cela, on utilise le gestionnaire correspondant à {{jsxref("Objets_globaux/Proxy/handler/get","get")}}.</p>
+Dans ce court exemple, on renvoie le nombre `37` comme valeur par défaut lorsque la propriété nommée n'est pas présente dans l'objet. Pour cela, on utilise le gestionnaire correspondant à {{jsxref("Objets_globaux/Proxy/handler/get","get")}}.
-<pre class="brush: js">var handler = {
+```js
+var handler = {
get: function(obj, prop){
return prop in obj?
obj[prop] :
@@ -71,31 +65,33 @@ p.b = undefined;
console.log(p.a, p.b); // 1, undefined
console.log('c' in p, p.c); // false, 37
-</pre>
+```
-<h3 id="Proxy_«_invisible_»">Proxy « invisible »</h3>
+### Proxy « invisible »
-<p>Dans cet exemple, le proxy transfère toutes les opérations qui sont appliquées à l'objet cible.</p>
+Dans cet exemple, le proxy transfère toutes les opérations qui sont appliquées à l'objet cible.
-<pre class="brush: js">var cible = {};
+```js
+var cible = {};
var p = new Proxy(cible, {});
p.a = 37; // L'opération est transmise à la cible par le proxy
console.log(cible.a); // 37. L'opération a bien été transmise
-</pre>
+```
-<h3 id="Validation">Validation</h3>
+### Validation
-<p>En utilisant un <code>Proxy</code>, il devient simple de valider les valeurs passées à un objet. Dans cet exemple, on utilise le gestionnaire correspondant à {{jsxref("Objets_globaux/Proxy/handler/set","set")}}.</p>
+En utilisant un `Proxy`, il devient simple de valider les valeurs passées à un objet. Dans cet exemple, on utilise le gestionnaire correspondant à {{jsxref("Objets_globaux/Proxy/handler/set","set")}}.
-<pre class="brush: js">let validateur = {
+```js
+let validateur = {
set: function(obj, prop, valeur) {
if (prop === 'âge') {
if (!Number.isInteger(valeur)) {
throw new TypeError('Cet âge n\'est pas un entier.');
}
- if (valeur &gt; 200) {
+ if (valeur > 200) {
throw new RangeError('Cet âge semble invalide.');
}
}
@@ -114,13 +110,14 @@ personne.âge = 100;
console.log(personne.âge); // 100
personne.âge = 'jeune'; // lève une exception
personne.âge = 300; // lève une exception
-</pre>
+```
-<h3 id="Étendre_un_constructeur">Étendre un constructeur</h3>
+### Étendre un constructeur
-<p>En utilisant une fonction proxy, on peut étendre un constructeur avec un nouveau constructeur. Dans cet exemple, on utilise les gestionnaires correspondants à {{jsxref("Objets_globaux/Proxy/handler/construct","construct")}} et {{jsxref("Objets_globaux/Proxy/handler/apply","apply")}}.</p>
+En utilisant une fonction proxy, on peut étendre un constructeur avec un nouveau constructeur. Dans cet exemple, on utilise les gestionnaires correspondants à {{jsxref("Objets_globaux/Proxy/handler/construct","construct")}} et {{jsxref("Objets_globaux/Proxy/handler/apply","apply")}}.
-<pre class="brush: js">function étendre(sup,base) {
+```js
+function étendre(sup,base) {
var descripteur = Object.getOwnPropertyDescriptor(
base.prototype, "constructor"
);
@@ -155,13 +152,15 @@ Garçon.prototype.genre = "M";
var Pierre = new Garçon("Pierre", 13);
console.log(Pierre.genre); // "M"
console.log(Pierre.nom); // "Pierre"
-console.log(Pierre.âge); // 13</pre>
+console.log(Pierre.âge); // 13
+```
-<h3 id="Manipuler_les_nœuds_DOM">Manipuler les nœuds DOM</h3>
+### Manipuler les nœuds DOM
-<p>Parfois, on veut passer un attribut ou un nom de classe entre deux éléments différents. Dans cet exemple, on utilise le gestionnaire lié à {{jsxref("Objets_globaux/Proxy/handler/set","set")}}.</p>
+Parfois, on veut passer un attribut ou un nom de classe entre deux éléments différents. Dans cet exemple, on utilise le gestionnaire lié à {{jsxref("Objets_globaux/Proxy/handler/set","set")}}.
-<pre class="brush: js">let vue = new Proxy({
+```js
+let vue = new Proxy({
selected: null
},
{
@@ -191,13 +190,14 @@ console.log(i1.getAttribute('aria-selected')); // 'true'
let i2 = vue.selected = document.getElementById('item-2');
console.log(i1.getAttribute('aria-selected')); // 'false'
console.log(i2.getAttribute('aria-selected')); // 'true'
-</pre>
+```
-<h3 id="Corriger_une_valeur_et_ajouter_une_propriété_supplémentaire">Corriger une valeur et ajouter une propriété supplémentaire</h3>
+### Corriger une valeur et ajouter une propriété supplémentaire
-<p>Dans l'exemple qui suit, le proxy <code>produits</code> évalue la valeur passée et la convertit en tableau si besoin. L'objet supporte également la propriété supplémentaire <code>dernierNavigateur</code> à la fois comme accesseur et mutateur.</p>
+Dans l'exemple qui suit, le proxy `produits` évalue la valeur passée et la convertit en tableau si besoin. L'objet supporte également la propriété supplémentaire `dernierNavigateur` à la fois comme accesseur et mutateur.
-<pre class="brush: js">let produits = new Proxy({
+```js
+let produits = new Proxy({
navigateurs: ['Internet Explorer', 'Netscape']
},
{
@@ -232,18 +232,19 @@ console.log(i2.getAttribute('aria-selected')); // 'true'
console.log(produits.navigateurs); // ['Internet Explorer', 'Netscape']
produits.navigateurs = 'Firefox'; // on passe une chaîne
-console.log(produits.navigateurs); // ['Firefox'] &lt;- pas de problème, elle est convertie en tableau
+console.log(produits.navigateurs); // ['Firefox'] <- pas de problème, elle est convertie en tableau
produits.dernierNavigateur = 'Chrome';
console.log(produits.navigateurs); // ['Firefox', 'Chrome']
console.log(produits.dernierNavigateur); // 'Chrome'
-</pre>
+```
-<h3 id="Trouver_un_élément_dans_un_tableau_grâce_à_sa_propriété">Trouver un élément dans un tableau grâce à sa propriété</h3>
+### Trouver un élément dans un tableau grâce à sa propriété
-<p>Dans cet exemple, ce proxy étend le tableau avec des fonctionnalités supplémentaires. Ici, on définit des propriétés sans utiliser {{jsxref("Objets_globaux/Object/defineProperties","Object.defineProperties")}}. Cet exemple pourrait être adapté pour trouver la ligne d'un tableau à partir d'une de ces cellules (la cible serait alors <a href="/fr/docs/Web/API/HTMLTableElement.rows"><code>table.rows</code></a>).</p>
+Dans cet exemple, ce proxy étend le tableau avec des fonctionnalités supplémentaires. Ici, on définit des propriétés sans utiliser {{jsxref("Objets_globaux/Object/defineProperties","Object.defineProperties")}}. Cet exemple pourrait être adapté pour trouver la ligne d'un tableau à partir d'une de ces cellules (la cible serait alors [`table.rows`](/fr/docs/Web/API/HTMLTableElement.rows)).
-<pre class="brush: js">let produits = new Proxy([
+```js
+let produits = new Proxy([
{ nom: 'Firefox', type: 'navigateur' },
{ nom: 'SeaMonkey', type: 'navigateur' },
{ nom: 'Thunderbird', type: 'client mail' }
@@ -300,13 +301,14 @@ console.log(produits['Chrome']); // undefined
console.log(produits.navigateur); // [{ nom: 'Firefox', type: 'navigateur' }, { nom: 'SeaMonkey', type: 'navigateur' }]
console.log(produits.types); // ['navigateur', 'client mail']
console.log(produits.nombre); // 3
-</pre>
+```
-<h3 id="Un_exemple_avec_toutes_les_trappes">Un exemple avec toutes les trappes</h3>
+### Un exemple avec toutes les trappes
-<p>Pour illustrer l'ensemble des trappes, on tente de « proxifier » un objet non natif : l'objet global <code>docCookies</code> créé grâce à <a href="/fr/docs/Web/API/Document/cookie/Simple_document.cookie_framework">cet exemple</a>.</p>
+Pour illustrer l'ensemble des trappes, on tente de « proxifier » un objet non natif : l'objet global `docCookies` créé grâce à [cet exemple](/fr/docs/Web/API/Document/cookie/Simple_document.cookie_framework).
-<pre class="brush: js">/*
+```js
+/*
var docCookies = ... définir l'objet "docCookies" grâce à
https://developer.mozilla.org/en-US/docs/DOM/document.cookie#A_little_framework.3A_a_complete_cookies_reader.2Fwriter_with_full_unicode_support
*/
@@ -333,7 +335,7 @@ var docCookies = new Proxy(docCookies, {
return sKey in oTarget || oTarget.hasItem(sKey);
},
"defineProperty": function (oTarget, sKey, oDesc) {
- if (oDesc &amp;&amp; "value" in oDesc) { oTarget.setItem(sKey, oDesc.value); }
+ if (oDesc && "value" in oDesc) { oTarget.setItem(sKey, oDesc.value); }
return oTarget;
},
"getOwnPropertyDescriptor": function (oTarget, sKey) {
@@ -353,54 +355,30 @@ console.log(docCookies.mon_cookie1 = "Première valeur");
console.log(docCookies.getItem("mon_cookie1"));
docCookies.setItem("mon_cookie1", "Valeur modifiée");
-console.log(docCookies.mon_cookie1);</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-proxy-objects', 'Proxy')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ES2016', '#sec-proxy-objects', 'Proxy')}}</td>
- <td>{{Spec2('ES2016')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ES2017', '#sec-proxy-objects', 'Proxy')}}</td>
- <td>{{Spec2('ES2017')}}</td>
- <td></td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-objects', 'Proxy')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td></td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy", 2)}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li><a href="https://www.youtube.com/watch?v=sClk6aB_CPk">“Proxies are awesome”, une présentation de Brendan Eich à JSConf</a> (en anglais) (<a href="https://www.slideshare.net/BrendanEich/metaprog-5303821">présentation</a>)</li>
- <li><a href="https://wiki.ecmascript.org/doku.php?id=harmony:proxies">La page pour la proposition ECMAScript Harmony sur Proxy</a> et <a href="https://wiki.ecmascript.org/doku.php?id=harmony:proxies_semantics">la page sur la sémantique des proxies ECMAScript Harmony</a></li>
- <li><a href="http://web.archive.org/web/20171007221059/http://soft.vub.ac.be/~tvcutsem/proxies/">Un tutoriel sur les proxies</a> (en anglais)</li>
- <li><a href="/fr/docs/JavaScript/Old_Proxy_API">L'ancienne API pour les Proxy SpiderMonkey</a></li>
- <li>{{jsxref("Object.watch()")}}, une fonctionnalité non-standard présente dans Gecko.</li>
-</ul>
-
-<h2 id="Notes_de_licence">Notes de licence</h2>
-
-<p>Certains composants de cette page (texte, exemples) ont été copiés ou adaptés du <a href="https://wiki.ecmascript.org/doku.php">Wiki ECMAScript</a> dont le contenu est sous licence <a href="https://creativecommons.org/licenses/by-nc-sa/2.0/">CC 2.0 BY-NC-SA</a>.</p>
+console.log(docCookies.mon_cookie1);
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ------------------------------------------------------------------------ | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-objects', 'Proxy')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ES2016', '#sec-proxy-objects', 'Proxy')}} | {{Spec2('ES2016')}} | |
+| {{SpecName('ES2017', '#sec-proxy-objects', 'Proxy')}} | {{Spec2('ES2017')}} | |
+| {{SpecName('ESDraft', '#sec-proxy-objects', 'Proxy')}} | {{Spec2('ESDraft')}} | |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy", 2)}}
+
+## Voir aussi
+
+- [“Proxies are awesome”, une présentation de Brendan Eich à JSConf](https://www.youtube.com/watch?v=sClk6aB_CPk) (en anglais) ([présentation](https://www.slideshare.net/BrendanEich/metaprog-5303821))
+- [La page pour la proposition ECMAScript Harmony sur Proxy](https://wiki.ecmascript.org/doku.php?id=harmony:proxies) et [la page sur la sémantique des proxies ECMAScript Harmony](https://wiki.ecmascript.org/doku.php?id=harmony:proxies_semantics)
+- [Un tutoriel sur les proxies](http://web.archive.org/web/20171007221059/http://soft.vub.ac.be/~tvcutsem/proxies/) (en anglais)
+- [L'ancienne API pour les Proxy SpiderMonkey](/fr/docs/JavaScript/Old_Proxy_API)
+- {{jsxref("Object.watch()")}}, une fonctionnalité non-standard présente dans Gecko.
+
+## Notes de licence
+
+Certains composants de cette page (texte, exemples) ont été copiés ou adaptés du [Wiki ECMAScript](https://wiki.ecmascript.org/doku.php) dont le contenu est sous licence [CC 2.0 BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/2.0/).
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/apply/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/apply/index.md
index 55606feb4e..804405fffd 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/apply/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/apply/index.md
@@ -10,64 +10,60 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/apply
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/apply
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.apply()</code></strong> représente une trappe pour un appel de fonctions.</p>
+La méthode **`handler.apply()`** représente une trappe pour un appel de fonctions.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-apply.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-apply.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
apply: function(cible, thisArg, listeArguments) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>apply</code>. Ici, <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `apply`. Ici, `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>thisArg</code></dt>
- <dd>L'argument {{jsxref("Opérateurs/L_opérateur_this","this")}} pour cet appel.</dd>
- <dt><code>listeArguments</code></dt>
- <dd>La liste d'arguments pour l'appel.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `thisArg`
+ - : L'argument {{jsxref("Opérateurs/L_opérateur_this","this")}} pour cet appel.
+- `listeArguments`
+ - : La liste d'arguments pour l'appel.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>apply</code> peut renvoyer n'importe quelle valeur.</p>
+La méthode `apply` peut renvoyer n'importe quelle valeur.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.apply</strong></code> est une trappe pour l'appel à une fonction.</p>
+La méthode **`handler.apply`** est une trappe pour l'appel à une fonction.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe intercepte les opérations suivantes :</p>
+Cette trappe intercepte les opérations suivantes :
-<ul>
- <li><code>proxy(...args)</code></li>
- <li>{{jsxref("Function.prototype.apply()")}} et {{jsxref("Function.prototype.call()")}}</li>
- <li>{{jsxref("Reflect.apply()")}}</li>
-</ul>
+- `proxy(...args)`
+- {{jsxref("Function.prototype.apply()")}} et {{jsxref("Function.prototype.call()")}}
+- {{jsxref("Reflect.apply()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception <code>TypeError</code> :</p>
+Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception `TypeError` :
-<ul>
- <li>la cible doit pouvoir être « appelable ». Autrement dit, il doit s'agir d'une fonction.</li>
-</ul>
+- la cible doit pouvoir être « appelable ». Autrement dit, il doit s'agir d'une fonction.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple ci-dessous, on piège un appel de fonction.</p>
+Dans l'exemple ci-dessous, on piège un appel de fonction.
-<pre class="brush: js">var p = new Proxy(function() {}, {
+```js
+var p = new Proxy(function() {}, {
apply: function(target, thisArg, argumentsList) {
console.log("called: " + argumentsList.join(", "));
return argumentsList[0] + argumentsList[1] + argumentsList[2];
@@ -76,40 +72,23 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/apply
console.log(p(1, 2, 3)); // "called: 1, 2, 3"
// 6
-</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-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.apply")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Function.prototype.apply")}}</li>
- <li>{{jsxref("Function.prototype.call")}}</li>
- <li>{{jsxref("Reflect.apply()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist', '[[Call]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.apply")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Function.prototype.apply")}}
+- {{jsxref("Function.prototype.call")}}
+- {{jsxref("Reflect.apply()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/construct/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/construct/index.md
index dcb569142e..289518a7e9 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/construct/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/construct/index.md
@@ -10,63 +10,59 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/construct
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <code><strong>handler.construct()</strong></code> est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}. Afin que l'opération <code>new</code> puisse être valide sur le proxy correspondant, la cible utilisée doit avoir une méthode interne <code>[[Construct]]</code> (autrement dit, l'instruction <code>new cible</code> doit être valide).</p>
+La méthode **`handler.construct()`** est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}. Afin que l'opération `new` puisse être valide sur le proxy correspondant, la cible utilisée doit avoir une méthode interne `[[Construct]]` (autrement dit, l'instruction `new cible` doit être valide).
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-construct.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-construct.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
construct: function(cible, listeArguments, newTarget) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>construct</code>.  <code>this</code> est ici lié au gestionnaire (<em>handler</em>).</p>
+Les paramètres suivants sont passés à la méthode `construct`.  `this` est ici lié au gestionnaire (_handler_).
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>listeArguments</code></dt>
- <dd>La liste des arguments passés au constructeur.</dd>
- <dt><code>newTarget</code></dt>
- <dd>Le constructeur originellement appelé.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `listeArguments`
+ - : La liste des arguments passés au constructeur.
+- `newTarget`
+ - : Le constructeur originellement appelé.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>construct</code> doit renvoyer un objet.</p>
+La méthode `construct` doit renvoyer un objet.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.construct()</strong></code> est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.</p>
+La méthode **`handler.construct()`** est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Ce trappe intercepte les opérations suivantes :</p>
+Ce trappe intercepte les opérations suivantes :
-<ul>
- <li><code>new proxy(...args)</code></li>
- <li>{{jsxref("Reflect.construct()")}}</li>
-</ul>
+- `new proxy(...args)`
+- {{jsxref("Reflect.construct()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Le résultat doit être un <code>Object</code>.</li>
-</ul>
+- Le résultat doit être un `Object`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on piège l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.</p>
+Dans l'exemple qui suit, on piège l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.
-<pre class="brush: js">var p = new Proxy(function() {}, {
+```js
+var p = new Proxy(function() {}, {
construct: function(target, argumentsList) {
console.log("called: " + argumentsList.join(", "));
return { value: argumentsList[0] * 10 };
@@ -75,60 +71,46 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/construct
console.log(new p(1).value); // "appel sur : 1"
// 10
-</pre>
+```
-<p>Dans cette version, on ne respecte pas la contrainte d'invariance :</p>
+Dans cette version, on ne respecte pas la contrainte d'invariance :
-<pre class="brush: js">var p = new Proxy(function() {}, {
+```js
+var p = new Proxy(function() {}, {
construct: function(target, argumentsList) {
return 1;
}
});
new p(); // Une exception TypeError est levée
-</pre>
+```
-<p>Dans le code qui suit, le proxy n'est pas correctement initialisé. La cible du proxy doit être un constructeur valide qui puisse être utilisé avec <code>new</code>.</p>
+Dans le code qui suit, le proxy n'est pas correctement initialisé. La cible du proxy doit être un constructeur valide qui puisse être utilisé avec `new`.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
construct: function(target, argumentsList, newTarget){
return {};
}
});
-new p(); // TypeError: p is not a constructor</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-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget', '[[Construct]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget', '[[Construct]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.construct")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>L'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}</li>
- <li>{{jsxref("Reflect.construct()")}}</li>
-</ul>
+new p(); // TypeError: p is not a constructor
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget', '[[Construct]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget', '[[Construct]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.construct")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- L'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}
+- {{jsxref("Reflect.construct()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.md
index f5bdab1aa2..969b386662 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/defineproperty/index.md
@@ -10,67 +10,63 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/defineProperty
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/defineProperty
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.defineProperty()</code></strong> est une trappe pour {{jsxref("Object.defineProperty()")}}.</p>
+La méthode **`handler.defineProperty()`** est une trappe pour {{jsxref("Object.defineProperty()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-defineproperty.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-defineproperty.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
defineProperty: function(cible, propriété, descripteur) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>defineProperty</code>. <code>this</code> est ici lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `defineProperty`. `this` est ici lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>propriété</code></dt>
- <dd>Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété dont on veut modifier la description.</dd>
- <dt><code>descripteur</code></dt>
- <dd>Le descripteur de la propriété qui est à modifier ou à définir.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `propriété`
+ - : Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété dont on veut modifier la description.
+- `descripteur`
+ - : Le descripteur de la propriété qui est à modifier ou à définir.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>defineProperty()</code> doit renvoyer un booléen qui indique si la propriété a correctement été définie sur la cible.</p>
+La méthode `defineProperty()` doit renvoyer un booléen qui indique si la propriété a correctement été définie sur la cible.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.defineProperty()</strong></code> est une trappe pour {{jsxref("Object.defineProperty()")}}.</p>
+La méthode **`handler.defineProperty()`** est une trappe pour {{jsxref("Object.defineProperty()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe intercepte les opérations suivantes :</p>
+Cette trappe intercepte les opérations suivantes :
-<ul>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Reflect.defineProperty()")}}</li>
-</ul>
+- {{jsxref("Object.defineProperty()")}}
+- {{jsxref("Reflect.defineProperty()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les contraintes d'invariances suivantes ne sont pas respectées, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les contraintes d'invariances suivantes ne sont pas respectées, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Une propriété ne peut pas être ajoutée si l'objet cible n'est pas extensible.</li>
- <li>Une propriété ne peut pas être ajoutée ou modifiée pour être rendue non-configurable si elle n'existe pas comme une propriété propre non-configurable de l'objet cible.</li>
- <li>Une propriété ne peut pas être non-configurable s'il existe une propriété correspondante de l'objet cible qui est configurable.</li>
- <li>Si une propriété correspondante existe pour l'objet cible <code>Object.defineProperty(cible, propriété, descripteur)</code> ne lèvera pas d'exception.</li>
- <li>En mode stricte, si le gestionnaire defineProperty renvoie une valeur fausse (dans un contexte booléen), cela entraînera une exception {{jsxref("TypeError")}}.</li>
-</ul>
+- Une propriété ne peut pas être ajoutée si l'objet cible n'est pas extensible.
+- Une propriété ne peut pas être ajoutée ou modifiée pour être rendue non-configurable si elle n'existe pas comme une propriété propre non-configurable de l'objet cible.
+- Une propriété ne peut pas être non-configurable s'il existe une propriété correspondante de l'objet cible qui est configurable.
+- Si une propriété correspondante existe pour l'objet cible `Object.defineProperty(cible, propriété, descripteur)` ne lèvera pas d'exception.
+- En mode stricte, si le gestionnaire defineProperty renvoie une valeur fausse (dans un contexte booléen), cela entraînera une exception {{jsxref("TypeError")}}.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans le code suivant, on piège l'appel à {{jsxref("Object.defineProperty()")}}.</p>
+Dans le code suivant, on piège l'appel à {{jsxref("Object.defineProperty()")}}.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
defineProperty: function(target, prop, descriptor) {
console.log("appelé avec : " + prop);
}
@@ -78,20 +74,19 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/definePrope
var desc = { configurable: true, enumerable: true, value: 10 };
Object.defineProperty(p, "a", desc); // "appelé avec : a"
-</pre>
+```
-<p>Lorsqu'on appelle {{jsxref("Object.defineProperty()")}} ou {{jsxref("Reflect.defineProperty()")}}, le descripteur passé à la trappe <code>defineProperty</code> doit respecter une contrainte : seules les propriétés suivants sont utilisables, les propriétés non-standards seront ignorées :</p>
+Lorsqu'on appelle {{jsxref("Object.defineProperty()")}} ou {{jsxref("Reflect.defineProperty()")}}, le descripteur passé à la trappe `defineProperty` doit respecter une contrainte : seules les propriétés suivants sont utilisables, les propriétés non-standards seront ignorées :
-<ul>
- <li><code>enumerable</code></li>
- <li><code>configurable</code></li>
- <li><code>writable</code></li>
- <li><code>value</code></li>
- <li><code>get</code></li>
- <li><code>set</code></li>
-</ul>
+- `enumerable`
+- `configurable`
+- `writable`
+- `value`
+- `get`
+- `set`
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
defineProperty(target, prop, descriptor) {
console.log(descriptor);
return Reflect.defineProperty(target, prop, descriptor);
@@ -103,39 +98,22 @@ Object.defineProperty(p, "name, {
type: "custom"
});
// { value: "proxy" }
-</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-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc', '[[DefineOwnProperty]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc', '[[DefineOwnProperty]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.defineProperty")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.defineProperty()")}}</li>
- <li>{{jsxref("Reflect.defineProperty()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc', '[[DefineOwnProperty]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-defineownproperty-p-desc', '[[DefineOwnProperty]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.defineProperty")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.defineProperty()")}}
+- {{jsxref("Reflect.defineProperty()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.md
index 517b27ca31..8cc45e09bb 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/deleteproperty/index.md
@@ -10,61 +10,57 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/deleteProperty
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/deleteProperty
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.deleteProperty()</code></strong> est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.</p>
+La méthode **`handler.deleteProperty()`** est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-deleteproperty.html","taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-deleteproperty.html","taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
deleteProperty: function(cible, propriété) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>deleteProperty</code>. <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `deleteProperty`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>propriété</code></dt>
- <dd>Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété à supprimer.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `propriété`
+ - : Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété à supprimer.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>deleteProperty()</code> doit renvoyer un booléen qui indique si oui ou non la propriété a été supprimée.</p>
+La méthode `deleteProperty()` doit renvoyer un booléen qui indique si oui ou non la propriété a été supprimée.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.deleteProperty()</strong></code> est une trappe permettant d'intercepter les opérations de l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.</p>
+La méthode **`handler.deleteProperty()`** est une trappe permettant d'intercepter les opérations de l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe peut intercepter les opérations suivantes :</p>
+Cette trappe peut intercepter les opérations suivantes :
-<ul>
- <li>La suppression d'une propriété : <code>delete proxy[toto]</code> et <code>delete proxy.toto</code></li>
- <li>{{jsxref("Reflect.deleteProperty()")}}</li>
-</ul>
+- La suppression d'une propriété : `delete proxy[toto]` et `delete proxy.toto`
+- {{jsxref("Reflect.deleteProperty()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invarians suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invarians suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Une propriété ne peut pas être supprimée s'il existe une propriété correspondante sur l'objet cible qui est une propriété propre et non-configurable.</li>
-</ul>
+- Une propriété ne peut pas être supprimée s'il existe une propriété correspondante sur l'objet cible qui est une propriété propre et non-configurable.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on intercepte les opérations de {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.</p>
+Dans l'exemple qui suit, on intercepte les opérations de {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
deleteProperty: function(cible, prop) {
console.log("appelée sur : " + prop);
return true;
@@ -72,39 +68,22 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/deletePrope
});
delete p.a; // "appelée sur : a"
-</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-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.deleteProperty")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>L'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}</li>
- <li>{{jsxref("Reflect.deleteProperty()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-delete-p', '[[Delete]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.deleteProperty")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- L'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}
+- {{jsxref("Reflect.deleteProperty()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/get/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/get/index.md
index e8c3fa93d2..db316e304d 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/get/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/get/index.md
@@ -10,65 +10,61 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/get
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/get
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.get()</code></strong> est une trappe pour intercepter l'accès à la valeur d'une propriété.</p>
+La méthode **`handler.get()`** est une trappe pour intercepter l'accès à la valeur d'une propriété.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-get.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-get.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
get: function(cible, propriété, récepteur) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>get</code>. <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `get`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>propriété</code></dt>
- <dd>Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété qu'on souhaite obtenir.</dd>
- <dt><code>récepteur</code></dt>
- <dd>Le proxy ou un objet qui hérite du proxy.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `propriété`
+ - : Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété qu'on souhaite obtenir.
+- `récepteur`
+ - : Le proxy ou un objet qui hérite du proxy.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>get</code> peut renvoyer n'importe quelle valeur.</p>
+La méthode `get` peut renvoyer n'importe quelle valeur.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.get</strong></code> est une trappe pour intercepter l'accès à une propriété.</p>
+La méthode **`handler.get`** est une trappe pour intercepter l'accès à une propriété.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter les opérations suivantes :</p>
+Cette trappe permet d'intercepter les opérations suivantes :
-<ul>
- <li>l'accès à une propriété : <code>proxy[toto]</code> et <code>proxy.truc</code></li>
- <li>L'accès aux propriétés héritées : <code>Object.create(proxy)[toto]</code></li>
- <li>{{jsxref("Reflect.get()")}}</li>
-</ul>
+- l'accès à une propriété : `proxy[toto]` et `proxy.truc`
+- L'accès aux propriétés héritées : `Object.create(proxy)[toto]`
+- {{jsxref("Reflect.get()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>La valeur renvoyée pour la propriété doit être la même que la valeur de la propriété correspondante de l'objet cible si celle-ci est non-configurable et non accessible en lecture.</li>
- <li>La valeur renvoyée doit valoir <code>undefined</code> si la propriété correspondante de l'objet cible est une propriété d'accesseur non-configurable dont l'attribut [[Get]] vaut <code>undefined</code>.</li>
-</ul>
+- La valeur renvoyée pour la propriété doit être la même que la valeur de la propriété correspondante de l'objet cible si celle-ci est non-configurable et non accessible en lecture.
+- La valeur renvoyée doit valoir `undefined` si la propriété correspondante de l'objet cible est une propriété d'accesseur non-configurable dont l'attribut \[\[Get]] vaut `undefined`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple suivant, on intercepte les accès aux propriétés :</p>
+Dans l'exemple suivant, on intercepte les accès aux propriétés :
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
get: function(cible, propriété, récepteur) {
console.log("appelée : " + propriété);
return 10;
@@ -77,11 +73,12 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/get
console.log(p.a); // "appelée : a"
// 10
-</pre>
+```
-<p>Le code suivant ne respecte pas l'invariant :</p>
+Le code suivant ne respecte pas l'invariant :
-<pre class="brush: js">var obj = {};
+```js
+var obj = {};
Object.defineProperty(obj, "a", {
configurable: false,
enumerable: false,
@@ -96,38 +93,21 @@ var p = new Proxy(obj, {
});
p.a; // exception TypeError levée
-</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-proxy-object-internal-methods-and-internal-slots-get-p-receiver', '[[Get]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver', '[[Get]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatiblité_des_navigateurs">Compatiblité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.get")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Reflect.get()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver', '[[Get]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-get-p-receiver', '[[Get]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatiblité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.get")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Reflect.get()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md
index 06de12e833..7f4b9c63f4 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md
@@ -10,66 +10,62 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getOwnPropertyDescriptor
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.getOwnPropertyDescriptor()</code></strong> est une trappe pour intercepter {{jsxref("Object.getOwnPropertyDescriptor()")}}.</p>
+La méthode **`handler.getOwnPropertyDescriptor()`** est une trappe pour intercepter {{jsxref("Object.getOwnPropertyDescriptor()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-getownpropertydescriptor.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-getownpropertydescriptor.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
getOwnPropertyDescriptor: function(cible, prop) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>getOwnPropertyDescriptor</code>. <code>this</code> est ici lié au gestionnaire (<em>handler</em>).</p>
+Les paramètres suivants sont passés à la méthode `getOwnPropertyDescriptor`. `this` est ici lié au gestionnaire (_handler_).
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible</dd>
- <dt><code>prop</code></dt>
- <dd>Le nom de la propriété dont on souhaite obtenir le descripteur.</dd>
-</dl>
+- `cible`
+ - : L'objet cible
+- `prop`
+ - : Le nom de la propriété dont on souhaite obtenir le descripteur.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>getOwnPropertyDescriptor</code> doit renvoyer un objet ou <code>undefined</code>.</p>
+La méthode `getOwnPropertyDescriptor` doit renvoyer un objet ou `undefined`.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.getOwnPropertyDescriptor()</strong></code> est une trappe pour un proxy afin d'intercepter les opérations effectuées avec {{jsxref("Object.getOwnPropertyDescriptor()")}}.</p>
+La méthode **`handler.getOwnPropertyDescriptor()`** est une trappe pour un proxy afin d'intercepter les opérations effectuées avec {{jsxref("Object.getOwnPropertyDescriptor()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter :</p>
+Cette trappe permet d'intercepter :
-<ul>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}}</li>
- <li>{{jsxref("Reflect.getOwnPropertyDescriptor()")}}</li>
-</ul>
+- {{jsxref("Object.getOwnPropertyDescriptor()")}}
+- {{jsxref("Reflect.getOwnPropertyDescriptor()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception {{jsxref("TypeError")}} :
-<ul>
- <li><code>getOwnPropertyDescriptor</code> doit renvoyer un objet ou <code>undefined</code>.</li>
- <li>Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et non-configurable.</li>
- <li>Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et que l'objet cible n'est pas extensible.</li>
- <li>Une propriété ne peut pas être indiquée comme existante si elle n'existe pas de façon correspondante sur l'objet cible et que l'objet cible n'est pas extensible.</li>
- <li>Une propriété ne peut pas être indiquée comme non-configurable si la propriété correspondante n'existe pas pour l'objet cible ou si elle existe comme un propriété propre configurable.</li>
- <li>Le résultat de <code>Object.getOwnPropertyDescriptor(cible)</code> peut être appliqué à l'objet cible avec <code>Object.defineProperty</code> sans que cela lève une exception.</li>
-</ul>
+- `getOwnPropertyDescriptor` doit renvoyer un objet ou `undefined`.
+- Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et non-configurable.
+- Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et que l'objet cible n'est pas extensible.
+- Une propriété ne peut pas être indiquée comme existante si elle n'existe pas de façon correspondante sur l'objet cible et que l'objet cible n'est pas extensible.
+- Une propriété ne peut pas être indiquée comme non-configurable si la propriété correspondante n'existe pas pour l'objet cible ou si elle existe comme un propriété propre configurable.
+- Le résultat de `Object.getOwnPropertyDescriptor(cible)` peut être appliqué à l'objet cible avec `Object.defineProperty` sans que cela lève une exception.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on intercepte {{jsxref("Object.getOwnPropertyDescriptor()")}}.</p>
+Dans l'exemple qui suit, on intercepte {{jsxref("Object.getOwnPropertyDescriptor()")}}.
-<pre class="brush: js">var p = new Proxy({ a: 20 }, {
+```js
+var p = new Proxy({ a: 20 }, {
getOwnPropertyDescriptor: function(cible, prop) {
console.log("appelée : " + prop);
return { configurable: true, enumerable: true, value: 10 };
@@ -78,11 +74,12 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getOwnPrope
console.log(Object.getOwnPropertyDescriptor(p, "a").value); // "appelée : a"
// 10
-</pre>
+```
-<p>L'exemple suivant ne respecte pas un invariant :</p>
+L'exemple suivant ne respecte pas un invariant :
-<pre class="brush: js">var obj = { a: 10 };
+```js
+var obj = { a: 10 };
Object.preventExtensions(obj);
var p = new Proxy(obj, {
getOwnPropertyDescriptor: function(cible, prop) {
@@ -91,39 +88,22 @@ var p = new Proxy(obj, {
});
Object.getOwnPropertyDescriptor(p, "a"); // Une exception TypeError est renvoyée
-</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-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.getOwnPropertyDescriptor")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.getOwnPropertyDescriptor()")}}</li>
- <li>{{jsxref("Reflect.getOwnPropertyDescriptor()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.getOwnPropertyDescriptor")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.getOwnPropertyDescriptor()")}}
+- {{jsxref("Reflect.getOwnPropertyDescriptor()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/getprototypeof/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/getprototypeof/index.md
index 8df39ee357..2f339ae97e 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/getprototypeof/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/getprototypeof/index.md
@@ -10,62 +10,58 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getPrototypeOf
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/getPrototypeOf
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.getPrototypeOf()</code></strong> représente une trappe pour la méthode interne <code>[[GetPrototypeOf]]</code>.</p>
+La méthode **`handler.getPrototypeOf()`** représente une trappe pour la méthode interne `[[GetPrototypeOf]]`.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-getprototypeof.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-getprototypeof.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(obj, {
+```js
+var p = new Proxy(obj, {
getPrototypeOf(cible) {
  ...
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Le paramètre suivant est passé à la méthode <code>getPrototypeOf</code>. <code>this</code> est lié au gestionnaire.</p>
+Le paramètre suivant est passé à la méthode `getPrototypeOf`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>getPrototypeOf</code> doit renvoyer un objet ou <code>null</code>.</p>
+La méthode `getPrototypeOf` doit renvoyer un objet ou `null`.
-<h2 id="Description">Description</h2>
+## Description
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter les opérations suivantes :</p>
+Cette trappe permet d'intercepter les opérations suivantes :
-<ul>
- <li>{{jsxref("Object.getPrototypeOf()")}}</li>
- <li>{{jsxref("Reflect.getPrototypeOf()")}}</li>
- <li>{{jsxref("Object/proto", "__proto__")}}</li>
- <li>{{jsxref("Object.prototype.isPrototypeOf()")}}</li>
- <li>{{jsxref("Opérateurs/instanceof", "instanceof")}}</li>
-</ul>
+- {{jsxref("Object.getPrototypeOf()")}}
+- {{jsxref("Reflect.getPrototypeOf()")}}
+- {{jsxref("Object/proto", "__proto__")}}
+- {{jsxref("Object.prototype.isPrototypeOf()")}}
+- {{jsxref("Opérateurs/instanceof", "instanceof")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivant ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivant ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li><code>getPrototypeOf</code> doit renvoyer un objet ou <code>null</code>.</li>
- <li>Si la <code>cible</code> n'est pas extensible, <code>Object.getPrototypeOf(proxy)</code> doit renvoyer la même valeur que <code>Object.getPrototypeOf(cible)</code>.</li>
-</ul>
+- `getPrototypeOf` doit renvoyer un objet ou `null`.
+- Si la `cible` n'est pas extensible, `Object.getPrototypeOf(proxy)` doit renvoyer la même valeur que `Object.getPrototypeOf(cible)`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<h3 id="Utilisation_simple">Utilisation simple</h3>
+### Utilisation simple
-<pre class="brush: js">var obj = {};
+```js
+var obj = {};
var proto = {};
var gestionnaire = {
getPrototypeOf(cible) {
@@ -77,11 +73,12 @@ var gestionnaire = {
var p = new Proxy(obj, gestionnaire);
console.log(Object.getPrototypeOf(p) === proto); // true
-</pre>
+```
-<h3 id="Cinq_façons_de_déclencher_la_trappe_getPrototypeOf">Cinq façons de déclencher la trappe <code>getPrototypeOf</code></h3>
+### Cinq façons de déclencher la trappe `getPrototypeOf`
-<pre class="brush: js">var obj = {};
+```js
+var obj = {};
var p = new Proxy(obj, {
getPrototypeOf(cible) {
return Array.prototype;
@@ -94,11 +91,12 @@ console.log(
Array.prototype.isPrototypeOf(p), // true
p instanceof Array // true
);
-</pre>
+```
-<h3 id="Deux_types_d'exceptions">Deux types d'exceptions</h3>
+### Deux types d'exceptions
-<pre class="brush: js">var obj = {};
+```js
+var obj = {};
var p = new Proxy(obj, {
getPrototypeOf(cible) {
return "toto";
@@ -113,39 +111,22 @@ var p = new Proxy(obj, {
}
});
Object.getPrototypeOf(p); // TypeError : on attend la même valeur pour le prototype
-</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-proxy-object-internal-methods-and-internal-slots-getprototypeof', '[[GetPrototypeOf]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof', '[[GetPrototypeOf]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.getPrototypeOf")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.getPrototypeOf()")}}</li>
- <li>{{jsxref("Reflect.getPrototypeOf()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof', '[[GetPrototypeOf]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getprototypeof', '[[GetPrototypeOf]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.getPrototypeOf")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.getPrototypeOf()")}}
+- {{jsxref("Reflect.getPrototypeOf()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/has/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/has/index.md
index 89861b997d..7a9efe5f69 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/has/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/has/index.md
@@ -10,64 +10,60 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/has
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/has
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.has()</code></strong> est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.</p>
+La méthode **`handler.has()`** est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-has.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-has.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
has: function(cible, prop) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>has</code>. <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `has`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>prop</code></dt>
- <dd>Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété dont on veut connaître l'existence.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `prop`
+ - : Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété dont on veut connaître l'existence.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>has</code> doit renvoyer une valeur booléenne.</p>
+La méthode `has` doit renvoyer une valeur booléenne.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.has</strong></code> est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.</p>
+La méthode **`handler.has`** est une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter les opérations suivantes :</p>
+Cette trappe permet d'intercepter les opérations suivantes :
-<ul>
- <li>L'accès à une propriété : <code>toto in proxy</code></li>
- <li>L'accès à une propriété héritée : <code>toto in Object.create(proxy)</code></li>
- <li>Accès via l'instruction <code><a href="/fr/docs/Web/JavaScript/Reference/Instructions/with">with</a></code> : <code>with(proxy) { (foo); }</code></li>
- <li>{{jsxref("Reflect.has()")}}</li>
-</ul>
+- L'accès à une propriété : `toto in proxy`
+- L'accès à une propriété héritée : `toto in Object.create(proxy)`
+- Accès via l'instruction [`with`](/fr/docs/Web/JavaScript/Reference/Instructions/with) : `with(proxy) { (foo); }`
+- {{jsxref("Reflect.has()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy lèvera une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et non-configurable.</li>
- <li>Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante propre sur l'objet cible et que celui-ci n'est pas extensible.</li>
-</ul>
+- Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante de l'objet cible qui est une propriété propre et non-configurable.
+- Une propriété ne peut pas être indiquée comme non-existante s'il existe une propriété correspondante propre sur l'objet cible et que celui-ci n'est pas extensible.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on intercepte l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}} :</p>
+Dans l'exemple qui suit, on intercepte l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}} :
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
has: function(cible, prop) {
console.log("appelée : " + prop);
return true;
@@ -76,11 +72,12 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/has
console.log("a" in p); // "appelée : a"
// true
-</pre>
+```
-<p>L'exemple suivant ne respecte pas un invariant :</p>
+L'exemple suivant ne respecte pas un invariant :
-<pre class="brush: js">var obj = { a: 10 };
+```js
+var obj = { a: 10 };
Object.preventExtensions(obj);
var p = new Proxy(obj, {
has: function(cible, prop) {
@@ -89,39 +86,22 @@ var p = new Proxy(obj, {
});
"a" in p; // TypeError levée
-</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-proxy-object-internal-methods-and-internal-slots-hasproperty-p', '[[HasProperty]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p', '[[HasProperty]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.has")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>L'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}</li>
- <li>{{jsxref("Reflect.has()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p', '[[HasProperty]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-hasproperty-p', '[[HasProperty]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.has")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- L'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}
+- {{jsxref("Reflect.has()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/index.md
index fb508680e1..23fca9ad60 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/index.md
@@ -10,73 +10,54 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy
translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler
---
-<div>{{JSRef}}</div>
-
-<p>L'objet gestionnaire d'un proxy est un objet qui contient les trappes de captures (<em>traps</em>) pour le  {{jsxref("Proxy", "proxy", "", 1)}}.</p>
-
-<h2 id="Méthodes">Méthodes</h2>
-
-<p>Toutes ces trappes sont optionnelles. Si une trappe n'a pas été définie, le comportement par défaut sera de transmettre l'opération à la cible.</p>
-
-<dl>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.getPrototypeOf")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.setPrototypeOf")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/isExtensible", "handler.isExtensible()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.isExtensible")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.preventExtensions")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.getOwnPropertyDescriptor")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/defineProperty", "handler.defineProperty()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.defineProperty")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/has", "handler.has()")}}</dt>
- <dd>Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/get", "handler.get()")}}</dt>
- <dd>Une trappe pour l'accès aux valeurs des propriétés.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/set", "handler.set()")}}</dt>
- <dd>Une trappe pour la définition des valeurs des propriétés.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}</dt>
- <dd>Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/ownKeys", "handler.ownKeys()")}}</dt>
- <dd>Une trappe pour {{jsxref("Object.getOwnPropertyNames")}} et {{jsxref("Object.getOwnPropertySymbols")}}.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/apply", "handler.apply()")}}</dt>
- <dd>Une trappe pour l'appel d'une fonction.</dd>
- <dt>{{jsxref("Objets_globaux/Proxy/handler/construct", "handler.construct()")}}</dt>
- <dd>Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.</dd>
-</dl>
-
-<p>Certaines trappes non standards sont désormais <a href="/fr/docs/JavaScript/Reference/Annexes/Fonctionnalités_dépréciées#Proxy">obsolètes et ont été supprimées</a>.</p>
-
-<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-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td>La trappe pour <code>enumerate</code> a été retirée.</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
-</ul>
+{{JSRef}}
+
+L'objet gestionnaire d'un proxy est un objet qui contient les trappes de captures (_traps_) pour le  {{jsxref("Proxy", "proxy", "", 1)}}.
+
+## Méthodes
+
+Toutes ces trappes sont optionnelles. Si une trappe n'a pas été définie, le comportement par défaut sera de transmettre l'opération à la cible.
+
+- {{jsxref("Objets_globaux/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}
+ - : Une trappe pour {{jsxref("Object.getPrototypeOf")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}
+ - : Une trappe pour {{jsxref("Object.setPrototypeOf")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/isExtensible", "handler.isExtensible()")}}
+ - : Une trappe pour {{jsxref("Object.isExtensible")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}
+ - : Une trappe pour {{jsxref("Object.preventExtensions")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}
+ - : Une trappe pour {{jsxref("Object.getOwnPropertyDescriptor")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/defineProperty", "handler.defineProperty()")}}
+ - : Une trappe pour {{jsxref("Object.defineProperty")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/has", "handler.has()")}}
+ - : Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_in", "in")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/get", "handler.get()")}}
+ - : Une trappe pour l'accès aux valeurs des propriétés.
+- {{jsxref("Objets_globaux/Proxy/handler/set", "handler.set()")}}
+ - : Une trappe pour la définition des valeurs des propriétés.
+- {{jsxref("Objets_globaux/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}
+ - : Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_delete", "delete")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/ownKeys", "handler.ownKeys()")}}
+ - : Une trappe pour {{jsxref("Object.getOwnPropertyNames")}} et {{jsxref("Object.getOwnPropertySymbols")}}.
+- {{jsxref("Objets_globaux/Proxy/handler/apply", "handler.apply()")}}
+ - : Une trappe pour l'appel d'une fonction.
+- {{jsxref("Objets_globaux/Proxy/handler/construct", "handler.construct()")}}
+ - : Une trappe pour l'opérateur {{jsxref("Opérateurs/L_opérateur_new", "new")}}.
+
+Certaines trappes non standards sont désormais [obsolètes et ont été supprimées](/fr/docs/JavaScript/Reference/Annexes/Fonctionnalités_dépréciées#Proxy).
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} | {{Spec2('ESDraft')}} | La trappe pour `enumerate` a été retirée. |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.md
index c7fd6613ec..9d335fd28b 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/isextensible/index.md
@@ -10,59 +10,55 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/isExtensible
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/isExtensible
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.isExtensible()</code></strong> est une trappe pour intercepter les opérations de {{jsxref("Object.isExtensible()")}}.</p>
+La méthode **`handler.isExtensible()`** est une trappe pour intercepter les opérations de {{jsxref("Object.isExtensible()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-isextensible.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-isextensible.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
isExtensible: function(cible) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>isExtensible</code>. <code>this</code> est ici lié au gestionnaire (<em>handler</em>).</p>
+Les paramètres suivants sont passés à la méthode `isExtensible`. `this` est ici lié au gestionnaire (_handler_).
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>isExtensible</code> doit renvoyer une valeur booléenne.</p>
+La méthode `isExtensible` doit renvoyer une valeur booléenne.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.isExtensible()</strong></code> est une trappe pour intercepter {{jsxref("Object.isExtensible()")}}.</p>
+La méthode **`handler.isExtensible()`** est une trappe pour intercepter {{jsxref("Object.isExtensible()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe intercepte les opérations suivantes :</p>
+Cette trappe intercepte les opérations suivantes :
-<ul>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Reflect.isExtensible()")}}</li>
-</ul>
+- {{jsxref("Object.isExtensible()")}}
+- {{jsxref("Reflect.isExtensible()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception  {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception  {{jsxref("TypeError")}} :
-<ul>
- <li><code>Object.isExtensible(proxy)</code> doit renvoyer la même valeur que <code>Object.isExtensible(cible)</code>.</li>
-</ul>
+- `Object.isExtensible(proxy)` doit renvoyer la même valeur que `Object.isExtensible(cible)`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on intercepte {{jsxref("Object.isExtensible()")}}.</p>
+Dans l'exemple qui suit, on intercepte {{jsxref("Object.isExtensible()")}}.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
isExtensible: function(cible) {
console.log("appelée");
return true;
@@ -71,50 +67,34 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/isExtensibl
console.log(Object.isExtensible(p)); // "appelée"
// true
-</pre>
+```
-<p>Le code suivante ne respecte pas l'invariant et entraîne donc une exception.</p>
+Le code suivante ne respecte pas l'invariant et entraîne donc une exception.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
isExtensible: function(cible) {
return false;
}
});
Object.isExtensible(p); // TypeError est levée
-</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-proxy-object-internal-methods-and-internal-slots-isextensible', '[[IsExtensible]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-isextensible', '[[IsExtensible]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.isExtensible")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.isExtensible()")}}</li>
- <li>{{jsxref("Reflect.isExtensible()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-isextensible', '[[IsExtensible]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-isextensible', '[[IsExtensible]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.isExtensible")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.isExtensible()")}}
+- {{jsxref("Reflect.isExtensible()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.md
index 45365d9401..a2e36cefde 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/ownkeys/index.md
@@ -10,64 +10,60 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/ownKeys
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.ownKeys()</code></strong> est une trappe pour {{jsxref("Object.getOwnPropertyNames()")}}.</p>
+La méthode **`handler.ownKeys()`** est une trappe pour {{jsxref("Object.getOwnPropertyNames()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-ownkeys.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-ownkeys.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
ownKeys: function(cible) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Le paramètre suivant est passé à la méthode <code>ownKeys</code>. <code>this</code> est lié au gestionnaire.</p>
+Le paramètre suivant est passé à la méthode `ownKeys`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>ownKeys</code> doit renvoyer un objet énumérable.</p>
+La méthode `ownKeys` doit renvoyer un objet énumérable.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.ownKeys()</strong></code> est une trappe pour intercepter les opérations de {{jsxref("Object.getOwnPropertyNames()")}}.</p>
+La méthode **`handler.ownKeys()`** est une trappe pour intercepter les opérations de {{jsxref("Object.getOwnPropertyNames()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter les opérations suivantes :</p>
+Cette trappe permet d'intercepter les opérations suivantes :
-<ul>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Object.getOwnPropertySymbols()")}}</li>
- <li>{{jsxref("Object.keys()")}}</li>
- <li>{{jsxref("Reflect.ownKeys()")}}</li>
-</ul>
+- {{jsxref("Object.getOwnPropertyNames()")}}
+- {{jsxref("Object.getOwnPropertySymbols()")}}
+- {{jsxref("Object.keys()")}}
+- {{jsxref("Reflect.ownKeys()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Le résultat de <code>ownKeys</code> doit être un tableau.</li>
- <li>Le type de chaque élément de ce tableau est soit une {{jsxref("String")}}, soit un {{jsxref("Symbol")}}.</li>
- <li>Le tableau résultant doit contenir les clés de toutes les propriétés propres non-configurables de l'objet cible.</li>
- <li>Si l'objet cible n'est pas extensible, la liste obtenue doit contenir toutes les clés pour les propriétés propres et aucune autre valeur.</li>
-</ul>
+- Le résultat de `ownKeys` doit être un tableau.
+- Le type de chaque élément de ce tableau est soit une {{jsxref("String")}}, soit un {{jsxref("Symbol")}}.
+- Le tableau résultant doit contenir les clés de toutes les propriétés propres non-configurables de l'objet cible.
+- Si l'objet cible n'est pas extensible, la liste obtenue doit contenir toutes les clés pour les propriétés propres et aucune autre valeur.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple suivant, on intercepte l'action de {{jsxref("Object.getOwnPropertyNames()")}}.</p>
+Dans l'exemple suivant, on intercepte l'action de {{jsxref("Object.getOwnPropertyNames()")}}.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
ownKeys: function(target) {
console.log("appelée");
return ["a", "b", "c"];
@@ -76,11 +72,12 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/ownKeys
console.log(Object.getOwnPropertyNames(p)); // "appelée"
// [ "a", "b", "c"]
-</pre>
+```
-<p>L'exemple suivant ne respecte pas l'ensemble des invariants :</p>
+L'exemple suivant ne respecte pas l'ensemble des invariants :
-<pre class="brush: js example-bad">var obj = {};
+```js example-bad
+var obj = {};
Object.defineProperty(obj, "a", {
configurable: false,
enumerable: true,
@@ -95,39 +92,22 @@ var p = new Proxy(obj, {
console.log(Object.getOwnPropertyNames(p));
// TypeError est levée
-</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-proxy-object-internal-methods-and-internal-slots-ownpropertykeys', '[[OwnPropertyKeys]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys', '[[OwnPropertyKeys]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.ownKeys")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.getOwnPropertyNames()")}}</li>
- <li>{{jsxref("Reflect.ownKeys()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys', '[[OwnPropertyKeys]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys', '[[OwnPropertyKeys]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.ownKeys")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.getOwnPropertyNames()")}}
+- {{jsxref("Reflect.ownKeys()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/preventextensions/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/preventextensions/index.md
index 0add4d9608..5583e5c760 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/preventextensions/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/preventextensions/index.md
@@ -10,59 +10,55 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/preventExtensions
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/preventExtensions
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.preventExtensions()</code></strong> est une trappe pour {{jsxref("Object.preventExtensions()")}}.</p>
+La méthode **`handler.preventExtensions()`** est une trappe pour {{jsxref("Object.preventExtensions()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-preventextensions.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-preventextensions.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
preventExtensions: function(cible) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Le paramètre suivant est passé à la méthode <code>preventExtensions</code>. <code>this</code> est lié au gestionnaire (<em>handler</em>).</p>
+Le paramètre suivant est passé à la méthode `preventExtensions`. `this` est lié au gestionnaire (_handler_).
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>preventExtensions</code> doit renvoyer une valeur booléenne.</p>
+La méthode `preventExtensions` doit renvoyer une valeur booléenne.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.preventExtensions()</strong></code> est une trappe pour intercepter {{jsxref("Object.preventExtensions()")}}.</p>
+La méthode **`handler.preventExtensions()`** est une trappe pour intercepter {{jsxref("Object.preventExtensions()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe peut intercepter les opérations de :</p>
+Cette trappe peut intercepter les opérations de :
-<ul>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Reflect.preventExtensions()")}}</li>
-</ul>
+- {{jsxref("Object.preventExtensions()")}}
+- {{jsxref("Reflect.preventExtensions()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une execption {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une execption {{jsxref("TypeError")}} :
-<ul>
- <li><code>Object.preventExtensions(proxy)</code> ne renvoie <code>true</code> que si <code>Object.isExtensible(proxy)</code> vaut <code>false</code>.</li>
-</ul>
+- `Object.preventExtensions(proxy)` ne renvoie `true` que si `Object.isExtensible(proxy)` vaut `false`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>On intercepte l'appel à {{jsxref("Object.preventExtensions()")}} dans l'exemple suivant :</p>
+On intercepte l'appel à {{jsxref("Object.preventExtensions()")}} dans l'exemple suivant :
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
preventExtensions: function(cible) {
console.log("appelé");
Object.preventExtensions(cible);
@@ -72,50 +68,34 @@ original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/preventExte
console.log(Object.preventExtensions(p)); // "appelé"
// true
-</pre>
+```
-<p>Le code suivant ne respecte pas l'invariant :</p>
+Le code suivant ne respecte pas l'invariant :
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
preventExtensions: function(cible) {
return true;
}
});
Object.preventExtensions(p); // TypeError est levée
-</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-proxy-object-internal-methods-and-internal-slots-preventextensions', '[[PreventExtensions]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-preventextensions', '[[PreventExtensions]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.preventExtensions")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.preventExtensions()")}}</li>
- <li>{{jsxref("Reflect.preventExtensions()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-preventextensions', '[[PreventExtensions]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-preventextensions', '[[PreventExtensions]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.preventExtensions")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.preventExtensions()")}}
+- {{jsxref("Reflect.preventExtensions()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/set/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/set/index.md
index 543e1b4640..544cc21fa2 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/set/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/set/index.md
@@ -10,68 +10,64 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/set
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <code><strong>handler.set()</strong></code> est une trappe permettant d'intercepter les opérations visant à définir ou modifier la valeur d'une propriété.</p>
+La méthode **`handler.set()`** est une trappe permettant d'intercepter les opérations visant à définir ou modifier la valeur d'une propriété.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-set.html", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-set.html", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
set: function(cible, propriété, valeur, récepteur) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>set</code>. <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `set`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>propriété</code></dt>
- <dd>Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété à définir.</dd>
- <dt><code>valeur</code></dt>
- <dd>La nouvelle valeur à définir pour la propriété.</dd>
- <dt><code>récepteur</code></dt>
- <dd>L'objet intialement visé par l'affectation. Généralement ce sera le proxy lui-même. Le gestionnaire <code>set</code> peut également être appelé indirectement, via la chaîne de prototypes ou d'autres façons. Par exemple, si on exécute l'instruction <code>obj.nom = "Jean"</code>, et qu'<code>obj</code> n'est pas un proxy ni ne possède de propriété <code>nom</code> mais s'il possède un proxy dans sa chaîne de prototypes, le gestionnaire <code>set</code> sera appelé et <code>obj</code> sera passé en tant que récepteur.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `propriété`
+ - : Le nom ou le symbole ({{jsxref("Symbol")}}) de la propriété à définir.
+- `valeur`
+ - : La nouvelle valeur à définir pour la propriété.
+- `récepteur`
+ - : L'objet intialement visé par l'affectation. Généralement ce sera le proxy lui-même. Le gestionnaire `set` peut également être appelé indirectement, via la chaîne de prototypes ou d'autres façons. Par exemple, si on exécute l'instruction `obj.nom = "Jean"`, et qu'`obj` n'est pas un proxy ni ne possède de propriété `nom` mais s'il possède un proxy dans sa chaîne de prototypes, le gestionnaire `set` sera appelé et `obj` sera passé en tant que récepteur.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>set</code> doit renvoyer une valeur booléenne. Elle renvoie <code>true</code> pour indiquer que l'affectation a réussi. Si la méthode <code>set</code> renvoie false et que l'affectation était exécutée dans du code en mode strict, une exception {{jsxref("TypeError")}} sera levée.</p>
+La méthode `set` doit renvoyer une valeur booléenne. Elle renvoie `true` pour indiquer que l'affectation a réussi. Si la méthode `set` renvoie false et que l'affectation était exécutée dans du code en mode strict, une exception {{jsxref("TypeError")}} sera levée.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.set</strong></code> est une trappe qui permet d'intercepter les opérations qui sont utilisées pour définir ou modifier la valeur d'une propriété.</p>
+La méthode **`handler.set`** est une trappe qui permet d'intercepter les opérations qui sont utilisées pour définir ou modifier la valeur d'une propriété.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter les opérations suivantes :</p>
+Cette trappe permet d'intercepter les opérations suivantes :
-<ul>
- <li>L'affectation à des propriétés : <code>proxy[toto] = truc</code> et <code>proxy.toto = truc</code></li>
- <li>L'affectation de propriétés héritées : <code>Object.create(proxy)[toto] = truc</code></li>
- <li>{{jsxref("Reflect.set()")}}</li>
-</ul>
+- L'affectation à des propriétés : `proxy[toto] = truc` et `proxy.toto = truc`
+- L'affectation de propriétés héritées : `Object.create(proxy)[toto] = truc`
+- {{jsxref("Reflect.set()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Il est impossible de modifier la valeur d'une propriété pour qu'elle soit différente de la valeur de la propriété correspondante de l'objet cible si celle-ci n'est pas accessible en lecture seule et est non-configurable (pour les propriétés de données).</li>
- <li>Il est impossible de modifier la valeur d'une propriété si la propriété correspondante de l'objet cible est une propriété d'accesseur/mutateur dont l'attribut [[Set]] vaut <code>undefined</code>.</li>
- <li>En mode strict, si le gestionnaire <code>set</code> renvoie une valeur fausse (dans un contexte booléen), cela lèvera une exception {{jsxref("TypeError")}}.</li>
-</ul>
+- Il est impossible de modifier la valeur d'une propriété pour qu'elle soit différente de la valeur de la propriété correspondante de l'objet cible si celle-ci n'est pas accessible en lecture seule et est non-configurable (pour les propriétés de données).
+- Il est impossible de modifier la valeur d'une propriété si la propriété correspondante de l'objet cible est une propriété d'accesseur/mutateur dont l'attribut \[\[Set]] vaut `undefined`.
+- En mode strict, si le gestionnaire `set` renvoie une valeur fausse (dans un contexte booléen), cela lèvera une exception {{jsxref("TypeError")}}.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Dans l'exemple qui suit, on intercepte la définition d'une nouvelle propriété.</p>
+Dans l'exemple qui suit, on intercepte la définition d'une nouvelle propriété.
-<pre class="brush: js">var p = new Proxy({}, {
+```js
+var p = new Proxy({}, {
set: function(target, prop, value, receiver) {
target[prop] = value;
console.log('property set: ' + prop + ' = ' + value);
@@ -84,38 +80,21 @@ console.log('a' in p); // false
p.a = 10; // "property set: a = 10"
console.log('a' in p); // true
console.log(p.a); // 10
-</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-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.set")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Reflect.set()")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver', '[[Set]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.set")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Reflect.set()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/proxy/setprototypeof/index.md b/files/fr/web/javascript/reference/global_objects/proxy/proxy/setprototypeof/index.md
index e12a4e6f90..104f392d73 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/proxy/setprototypeof/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/proxy/setprototypeof/index.md
@@ -10,63 +10,59 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/setPrototypeOf
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/handler/setPrototypeOf
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <strong><code>handler.setPrototypeOf()</code></strong> est une trappe pour intercepter {{jsxref("Object.setPrototypeOf()")}}.</p>
+La méthode **`handler.setPrototypeOf()`** est une trappe pour intercepter {{jsxref("Object.setPrototypeOf()")}}.
-<div>{{EmbedInteractiveExample("pages/js/proxyhandler-setprototypeof.html", "taller", "taller")}}</div>
+{{EmbedInteractiveExample("pages/js/proxyhandler-setprototypeof.html", "taller", "taller")}}
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="brush: js">var p = new Proxy(cible, {
+```js
+var p = new Proxy(cible, {
setPrototypeOf: function(cible, prototype) {
}
});
-</pre>
+```
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<p>Les paramètres suivants sont passés à la méthode <code>setPrototypeOf</code>. <code>this</code> est lié au gestionnaire.</p>
+Les paramètres suivants sont passés à la méthode `setPrototypeOf`. `this` est lié au gestionnaire.
-<dl>
- <dt><code>cible</code></dt>
- <dd>L'objet cible.</dd>
- <dt><code>prototype</code></dt>
- <dd>Le nouveau prototype de l'objet ou <code>null</code>.</dd>
-</dl>
+- `cible`
+ - : L'objet cible.
+- `prototype`
+ - : Le nouveau prototype de l'objet ou `null`.
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>La méthode <code>setPrototypeOf</code> renvoie <code>true</code> si la propriété interne <code>[[Prototype]]</code> a bien été modifiée et <code>false</code> sinon.</p>
+La méthode `setPrototypeOf` renvoie `true` si la propriété interne `[[Prototype]]` a bien été modifiée et `false` sinon.
-<h2 id="Description">Description</h2>
+## Description
-<p>La méthode <code><strong>handler.setPrototypeOf</strong></code> est une trappe utilisée pour intercepter les opérations de {{jsxref("Object.setPrototypeOf()")}}.</p>
+La méthode **`handler.setPrototypeOf`** est une trappe utilisée pour intercepter les opérations de {{jsxref("Object.setPrototypeOf()")}}.
-<h3 id="Interceptions">Interceptions</h3>
+### Interceptions
-<p>Cette trappe permet d'intercepter :</p>
+Cette trappe permet d'intercepter :
-<ul>
- <li>{{jsxref("Object.setPrototypeOf()")}}</li>
- <li>{{jsxref("Reflect.setPrototypeOf()")}}</li>
-</ul>
+- {{jsxref("Object.setPrototypeOf()")}}
+- {{jsxref("Reflect.setPrototypeOf()")}}
-<h3 id="Invariants">Invariants</h3>
+### Invariants
-<p>Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :</p>
+Si les invariants suivants ne sont pas respectés, le proxy renverra une exception {{jsxref("TypeError")}} :
-<ul>
- <li>Si <code>cible</code> n'est pas extensible, le paramètre <code>prototype</code> doit être le même valeur que <code>Object.getPrototypeOf(cible)</code>.</li>
-</ul>
+- Si `cible` n'est pas extensible, le paramètre `prototype` doit être le même valeur que `Object.getPrototypeOf(cible)`.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<p>Si on souhaite interdire la définition d'un nouveau prototype pour un objet, on peut utiliser une méthode <code>setPrototypeOf</code> qui renvoie <code>false</code> ou qui génère une exception.</p>
+Si on souhaite interdire la définition d'un nouveau prototype pour un objet, on peut utiliser une méthode `setPrototypeOf` qui renvoie `false` ou qui génère une exception.
-<p>Avec cette première approche, toute opération qui voudra modifier le prototype génèrera une exception. On aura par exemple {{jsxref("Object.setPrototypeOf()")}} qui créera et lèvera l'exception <code>TypeError</code>. Si la modification est effectuée par une opération qui ne génère pas d'exception en cas d'échec (comme  {{jsxref("Reflect.setPrototypeOf()")}}), aucune exception ne sera générée.</p>
+Avec cette première approche, toute opération qui voudra modifier le prototype génèrera une exception. On aura par exemple {{jsxref("Object.setPrototypeOf()")}} qui créera et lèvera l'exception `TypeError`. Si la modification est effectuée par une opération qui ne génère pas d'exception en cas d'échec (comme  {{jsxref("Reflect.setPrototypeOf()")}}), aucune exception ne sera générée.
-<pre class="brush: js">var handlerReturnsFalse = {
+```js
+var handlerReturnsFalse = {
setPrototypeOf(target, newProto) {
return false;
}
@@ -79,11 +75,12 @@ Object.setPrototypeOf(p1, newProto);
// lève une TypeError
Reflect.setPrototypeOf(p1, newProto);
// renvoie false
-</pre>
+```
-<p>Avec cette seconde approche, toute tentative de modification génèrera une exception. On utilisera celle-ci lorsqu'on souhaite qu'une erreur se produisent, y compris pour les opérations qui ne génèrent habituellement pas d'exception ou si on souhaite générer une exception sur mesure.</p>
+Avec cette seconde approche, toute tentative de modification génèrera une exception. On utilisera celle-ci lorsqu'on souhaite qu'une erreur se produisent, y compris pour les opérations qui ne génèrent habituellement pas d'exception ou si on souhaite générer une exception sur mesure.
-<pre class="brush: js">var handlerThrows = {
+```js
+var handlerThrows = {
setPrototypeOf(target, newProto) {
throw new Error("erreur custom");
}
@@ -95,39 +92,23 @@ var p2 = new Proxy(target, handlerThrows);
Object.setPrototypeOf(p2, newProto);
// lève une exception new Error("erreur custom")
Reflect.setPrototypeOf(p2, newProto);
-// lève une exception new Error("erreur custom")</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-proxy-object-internal-methods-and-internal-slots-setprototypeof-v', '[[SetPrototypeOf]]')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v', '[[SetPrototypeOf]]')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.handler.setPrototypeOf")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
- <li>{{jsxref("Proxy.handler", "handler")}}</li>
- <li>{{jsxref("Object.setPrototypeOf()")}}</li>
- <li>{{jsxref("Reflect.setPrototypeOf()")}}</li>
-</ul>
+// lève une exception new Error("erreur custom")
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v', '[[SetPrototypeOf]]')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-setprototypeof-v', '[[SetPrototypeOf]]')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.handler.setPrototypeOf")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}
+- {{jsxref("Proxy.handler", "handler")}}
+- {{jsxref("Object.setPrototypeOf()")}}
+- {{jsxref("Reflect.setPrototypeOf()")}}
diff --git a/files/fr/web/javascript/reference/global_objects/proxy/revocable/index.md b/files/fr/web/javascript/reference/global_objects/proxy/revocable/index.md
index de489f2172..376cf22348 100644
--- a/files/fr/web/javascript/reference/global_objects/proxy/revocable/index.md
+++ b/files/fr/web/javascript/reference/global_objects/proxy/revocable/index.md
@@ -10,39 +10,37 @@ tags:
translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/revocable
original_slug: Web/JavaScript/Reference/Objets_globaux/Proxy/revocable
---
-<div>{{JSRef}}</div>
+{{JSRef}}
-<p>La méthode <code><strong>Proxy.revocable()</strong></code> est utilisée afin de créer un objet {{jsxref("Proxy")}} révocable.</p>
+La méthode **`Proxy.revocable()`** est utilisée afin de créer un objet {{jsxref("Proxy")}} révocable.
-<h2 id="Syntaxe">Syntaxe</h2>
+## Syntaxe
-<pre class="syntaxbox">Proxy.revocable(cible, gestionnaire);
-</pre>
+ Proxy.revocable(cible, gestionnaire);
-<h3 id="Paramètres">Paramètres</h3>
+### Paramètres
-<div>{{Page("/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy", "Paramètres")}}</div>
+{{Page("/fr/docs/Web/JavaScript/Reference/Objets_globaux/Proxy", "Paramètres")}}
-<h3 id="Valeur_de_retour">Valeur de retour</h3>
+### Valeur de retour
-<p>Un nouvel objet <code>Proxy</code> révocable est renvoyé par la méthode.</p>
+Un nouvel objet `Proxy` révocable est renvoyé par la méthode.
-<h2 id="Description">Description</h2>
+## Description
-<p>Un <code>Proxy</code> révocable est un objet qui possède les propriétés suivantes : <code>{proxy: proxy, revoke: revoke}</code>.</p>
+Un `Proxy` révocable est un objet qui possède les propriétés suivantes : `{proxy: proxy, revoke: revoke}`.
-<dl>
- <dt><code>proxy</code></dt>
- <dd>Un proxy crée avec un appel à <code>new Proxy(cible, gestionnaire)</code>.</dd>
- <dt><code>revoke</code></dt>
- <dd>Une fonction sans argument qui permet de désactiver le proxy.</dd>
-</dl>
+- `proxy`
+ - : Un proxy crée avec un appel à `new Proxy(cible, gestionnaire)`.
+- `revoke`
+ - : Une fonction sans argument qui permet de désactiver le proxy.
-<p>Si la fonction <code>revoke()</code> est appelée, le proxy devient inutilisable et toutes les trappes définies via un gestionnaire lèveront une exception {{jsxref("TypeError")}}. Une fois que le proxy est révoqué, il conserve cet état et peut être traité par le ramasse-miettes. D'éventuels appels suivants à <code>revoke()</code> n'auront aucun effet.</p>
+Si la fonction `revoke()` est appelée, le proxy devient inutilisable et toutes les trappes définies via un gestionnaire lèveront une exception {{jsxref("TypeError")}}. Une fois que le proxy est révoqué, il conserve cet état et peut être traité par le ramasse-miettes. D'éventuels appels suivants à `revoke()` n'auront aucun effet.
-<h2 id="Exemples">Exemples</h2>
+## Exemples
-<pre class="brush: js">var révocable = Proxy.revocable({}, {
+```js
+var révocable = Proxy.revocable({}, {
get: function(cible, nom) {
return "[[" + nom + "]]";
}
@@ -56,36 +54,19 @@ console.log(proxy.toto); // TypeError est levée
proxy.toto = 1 // TypeError à nouveau
delete proxy.toto // TypeError toujours
typeof proxy // "object", typeof ne déclenche aucune trappe
-</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-proxy.revocable', 'Proxy Revocation Functions')}}</td>
- <td>{{Spec2('ES2015')}}</td>
- <td>Définition initiale.</td>
- </tr>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-proxy.revocable', 'Proxy Revocation Functions')}}</td>
- <td>{{Spec2('ESDraft')}}</td>
- <td> </td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
-
-<p>{{Compat("javascript.builtins.Proxy.revocable")}}</p>
-
-<h2 id="Voir_aussi">Voir aussi</h2>
-
-<ul>
- <li>{{jsxref("Proxy")}}</li>
-</ul>
+```
+
+## Spécifications
+
+| Spécification | État | Commentaires |
+| -------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------- |
+| {{SpecName('ES2015', '#sec-proxy.revocable', 'Proxy Revocation Functions')}} | {{Spec2('ES2015')}} | Définition initiale. |
+| {{SpecName('ESDraft', '#sec-proxy.revocable', 'Proxy Revocation Functions')}} | {{Spec2('ESDraft')}} |   |
+
+## Compatibilité des navigateurs
+
+{{Compat("javascript.builtins.Proxy.revocable")}}
+
+## Voir aussi
+
+- {{jsxref("Proxy")}}