aboutsummaryrefslogtreecommitdiff
path: root/files/ca/web/javascript/reference/global_objects/weakmap
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:41:15 -0500
commit4b1a9203c547c019fc5398082ae19a3f3d4c3efe (patch)
treed4a40e13ceeb9f85479605110a76e7a4d5f3b56b /files/ca/web/javascript/reference/global_objects/weakmap
parent33058f2b292b3a581333bdfb21b8f671898c5060 (diff)
downloadtranslated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.gz
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.tar.bz2
translated-content-4b1a9203c547c019fc5398082ae19a3f3d4c3efe.zip
initial commit
Diffstat (limited to 'files/ca/web/javascript/reference/global_objects/weakmap')
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html91
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html114
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/get/index.html115
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/has/index.html118
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/index.html279
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html132
-rw-r--r--files/ca/web/javascript/reference/global_objects/weakmap/set/index.html120
7 files changed, 969 insertions, 0 deletions
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html
new file mode 100644
index 0000000000..443e075d46
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/clear/index.html
@@ -0,0 +1,91 @@
+---
+title: WeakMap.prototype.clear()
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/clear
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear
+---
+<div>{{JSRef}} {{obsolete_header}}</div>
+
+<p>El mètode <code><strong>clear()</strong></code> elimina tots els elements d'un objecte <code>WeakMap.</code></p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code><em>wm</em>.clear();</code></pre>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzar_el_mètode_clear">Utilitzar el mètode <code>clear</code></h3>
+
+<pre class="brush: js;highlight:[10]">var wm = new WeakMap();
+var obj = {};
+
+wm.set(obj, "foo");
+wm.set(window, "bar");
+
+wm.has(obj); // true
+wm.has(window); // true
+
+wm.clear();
+
+wm.has(obj) // false
+wm.has(window) // false
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<p>No forma part de cap especificació o borrador actual. Aquest mètode formava part del borrador de l'especificació d'ECMAScript 6 fins a la revisió número 28 (versió del 14 d'octubre del 2014), però s'ha eliminat en versions posteriors del borrador. No formarà part de l'estàndard final.</p>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("20.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("20.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("WeakMap")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html
new file mode 100644
index 0000000000..1037fdb3fc
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/delete/index.html
@@ -0,0 +1,114 @@
+---
+title: WeakMap.prototype.delete()
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/delete
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/delete
+---
+<div>{{JSRef}}</div>
+
+<p>El mètode <code><strong>delete()</strong></code> elimina l'element especificat d'un objecte <code>WeakMap.</code></p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code><em>wm</em>.delete(key);</code></pre>
+
+<h3 id="Parameters">Parameters</h3>
+
+<dl>
+ <dt>key</dt>
+ <dd>Necessari. La clau de l'element a eliminar de l'objecte <code>WeakMap.</code></dd>
+</dl>
+
+<h3 id="Valor_de_retorn">Valor de retorn</h3>
+
+<p>Retorna <code>true</code> si un element en l'objecte <code>WeakMap</code> s'ha eliminat satisfactòriament.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzarel_mètode_delete">Utilitzarel mètode <code>delete</code></h3>
+
+<pre class="brush: js;highlight:[4]">var wm = new WeakMap();
+wm.set(window, "foo");
+
+wm.delete(window); // Retorna true. Eliminat satisfactòriament
+
+wm.has(window); // Retorna false. L'objecte window ja no es troba en el WeakMap.
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2>
+
+<ul>
+ <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llançava un {{jsxref("TypeError")}} quan el paràmetre <code>key</code> no era un objecte. Aquest error s'ha arreglat en la versió 38 i posteriors al retornar <code>false</code> segons l'últim estàndard ES6 ({{bug(1127827)}}).</li>
+</ul>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("WeakMap")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html
new file mode 100644
index 0000000000..f69ca1aa58
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/get/index.html
@@ -0,0 +1,115 @@
+---
+title: WeakMap.prototype.get()
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/get
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/get
+---
+<div>{{JSRef}}</div>
+
+<p>El mètode <code><strong>get()</strong></code> retorna un element especificat d'un objecte <code>WeakMap.</code></p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code><em>wm</em>.get(key);</code></pre>
+
+<h3 id="Paràmetres">Paràmetres</h3>
+
+<dl>
+ <dt>key</dt>
+ <dd>Necessari. La clau d'un element a retornar de l'objecte <code>WeakMap.</code></dd>
+</dl>
+
+<h3 id="Valor_a_retornar">Valor a retornar</h3>
+
+<p>Retorna l'element associat a la clau especificada o <code>undefined</code> si no es pot trobar la clau en l'objecte <code>WeakMap.</code></p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzar_el_mètode_get">Utilitzar el mètode <code>get</code></h3>
+
+<pre class="brush: js">var wm = new WeakMap();
+wm.set(window, "foo");
+
+wm.get(window); // Retorna "foo".
+wm.get("baz"); // Retorna undefined.
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2>
+
+<ul>
+ <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llençava un {{jsxref("TypeError")}} quan no es trobava el paràmetre key en l'objecte. Tot i així, l'últim estàndard ES6 especifica que en comptes d'això es retorni <code>undefined.</code> És més, <code>WeakMap.prototype.get</code> acceptava un segon argument opcional com a valor com a pla B, el qual no forma part de l'estàndard. Ambdós comportaments no estàndards s'han eliminat en la versió 38 i posterior ({{bug(1127827)}}).</li>
+</ul>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("WeakMap")}}</li>
+ <li>{{jsxref("WeakMap.set()")}}</li>
+ <li>{{jsxref("WeakMap.has()")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html
new file mode 100644
index 0000000000..0a2d017462
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/has/index.html
@@ -0,0 +1,118 @@
+---
+title: WeakMap.prototype.has()
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/has
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/has
+---
+<div>{{JSRef}}</div>
+
+<p>El mètode <code><strong>has()</strong></code> retorna un booleà indicant si un element amb una clau especificada existeix o no en l'objecte <code>WeakMap.</code></p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code><em>wm</em>.has(key);</code></pre>
+
+<h3 id="Paràmetres">Paràmetres</h3>
+
+<dl>
+ <dt>key</dt>
+ <dd>Necessari. La clau de l'element a comprovar la seva presència de l'objecte <code>WeakMap.</code></dd>
+</dl>
+
+<h3 id="valor_de_retorn">valor de retorn</h3>
+
+<dl>
+ <dt>Booleà</dt>
+ <dd>Retorna <code>true</code> si un element amb una clau especificada existeix en l'objecte <code>WeakMap</code>; en el cas contrari retornarà <code>false</code>.</dd>
+</dl>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzar_el_mètode_has">Utilitzar el mètode <code>has</code></h3>
+
+<pre class="brush: js">var wm = new WeakMap();
+wm.set(window, "foo");
+
+wm.has(window); // retorna true
+wm.has("baz"); // retorna false
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2>
+
+<ul>
+ <li>Abans de SpiderMonkey 38 {{geckoRelease(38)}}, aquest mètode llençava un {{jsxref("TypeError")}} quan el paràmetre <code>key</code> no era un objecte. Això s'ha arreglat en la versió 38 i posteriors per tal de retornar <code>false</code> segons l'últim estàndard ES6 ({{bug(1127827)}}).</li>
+</ul>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("WeakMap")}}</li>
+ <li>{{jsxref("WeakMap.prototype.set()")}}</li>
+ <li>{{jsxref("WeakMap.prototype.get()")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/index.html
new file mode 100644
index 0000000000..27fdd6a71d
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/index.html
@@ -0,0 +1,279 @@
+---
+title: WeakMap
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap
+tags:
+ - ECMAScript6
+ - Experimental
+ - JavaScript
+ - NeedsTranslation
+ - TopicStub
+ - WeakMap
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap
+---
+<div>{{JSRef}}</div>
+
+<p>L'objecte <strong><code>WeakMap</code></strong> és una col·lecció de parelles clau/valor on les claus són dèbilment referenciades. Les claus han de ser objectes i els valors poden ser valors aribitraris.</p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox notranslate"><code>new WeakMap([iterable])
+</code></pre>
+
+<h3 id="Paràmetres">Paràmetres</h3>
+
+<dl>
+ <dt><code>iterable</code></dt>
+ <dd>Iterable és un Array o un altre objecte iterable el qual els seus elements són parelles clau/valor (Array de 2 elements). Cada parella clau/valor serà afegida al nou WeakMap. null és tractat com a undefined.</dd>
+</dl>
+
+<h2 id="Descripció">Descripció</h2>
+
+<p>Les claus de WeakMaps són només de tipus <code>Object.</code> {{Glossary("Primitive", "Primitive data types")}} com a claus no són permesos (e.g. a {{jsxref("Symbol")}} no pot ser una clau <code>WeakMap</code>).</p>
+
+<p>La clau d'un WeakMap es sostè dèbilment.  El que significa que, si no hi ha altres referències fortes a la clau, llavors la entrada sencera serà eliminada del WeakMap pel recol·lector de brossa (garbage collector).</p>
+
+<h3 id="Per_què_WeakMap">Per què <em>Weak</em>Map?</h3>
+
+<p>El programador expert en JavaScript s'adonarà que aquesta API es podria implementar en JavaScript amb dos arrays (una per a claus, i una per valors) compartides pels quatre mètodes de l'API. Tal implementació tindria dos inconvenients principals. El primer és que la cerca té un cost de O(n) (on n és el nombre de claus al mapa). El segon és que té problemes de fuita de memòria (memory leak). Amb els mapes mantinguts manualment, l'array de claus mantindria referències a le objectes clau, evitant que aquests fóssin eliminats de memòria pel recol·lector de brossa. Als WeakMaps natius, les referències als objectes clau són "dèbils", que vol dir que el recol·lector de brossa pot eliminar l'objecte de memòria si aquest només és referenciat per referències dèbils.</p>
+
+<p>Degut a que les referències són dèbils les claus del WeakMap no són enumerables (és a dir, no hi ha cap mètode que us retornarà un llistat de claus). Si aquest mètode existís, aquest dependria de l'estat del recol·lector de brossa, introduïnt un comportament no determinista. Si voleu tenir un llistat amb les claus, l'haureu de mantenir pel vostre compte.</p>
+
+<h2 id="Propietats">Propietats</h2>
+
+<dl>
+ <dt><code>WeakMap.length</code></dt>
+ <dd>El valor de la propietat <code>length</code> és 0.</dd>
+ <dt>{{jsxref("WeakMap.prototype")}}</dt>
+ <dd>Representa el prototip pel constructor <code>WeakMap.</code> Permet l'adició de propietats a tots els objectes <code>WeakMap.</code></dd>
+</dl>
+
+<h2 id="Instàncies_WeakMap">Instàncies <code>WeakMap</code></h2>
+
+<p>Totes les instàncies <code>WeakMap</code> hereten de {{jsxref("WeakMap.prototype")}}.</p>
+
+<h3 id="Propietats_2">Propietats</h3>
+
+<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Properties')}}</p>
+
+<h3 id="Mètodes">Mètodes</h3>
+
+<p>{{page('ca/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Methods')}}</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzar_WeakMap">Utilitzar <code>WeakMap</code></h3>
+
+<pre class="brush: js notranslate">var wm1 = new WeakMap(),
+ wm2 = new WeakMap(),
+ wm3 = new WeakMap();
+var o1 = {},
+ o2 = function(){},
+ o3 = window;
+
+wm1.set(o1, 37);
+wm1.set(o2, "azerty");
+wm2.set(o1, o2); // un valor pot ser qualsevol cosa, incloent un objecte object o una funció
+wm2.set(o3, undefined);
+wm2.set(wm1, wm2); // claus i valors poden ser qualsevol objecte. Fins i tot WeakMaps!
+
+wm1.get(o2); // "azerty"
+wm2.get(o2); // undefined, ja que no hi ha cap valor per o2 a wm2
+wm2.get(o3); // undefined, al tenir assignat aquest valor
+
+wm1.has(o2); // true
+wm2.has(o2); // false
+wm2.has(o3); // true (encara que el valor en si sigui 'undefined')
+
+wm3.set(o1, 37);
+wm3.get(o1); // 37
+
+wm1.has(o1); // true
+wm1.delete(o1);
+wm1.has(o1); // false
+</pre>
+
+<h3 id="Implementar_una_classe_tipus_WeakMap_amb_un_mètode_.clear">Implementar una classe tipus <code>WeakMap</code> amb un mètode .clear()</h3>
+
+<p>Amb fins expositius, l'exemple següent utilitza el nou constructor <code>class</code> d' ECMAScript 6, el qual no està àmpliament implementat.</p>
+
+<pre class="brush: js notranslate">class ClearableWeakMap {
+ constructor(init) {
+ this._wm = new WeakMap(init)
+ }
+ clear() {
+ this._wm = new WeakMap()
+ }
+ delete(k) {
+ return this._wm.delete(k)
+ }
+ get(k) {
+ return this._wm.get(k)
+ }
+ has(k) {
+ return this._wm.has(k)
+ }
+ set(k, v) {
+ this._wm.set(k, v)
+ return this
+ }
+}
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap-objects', 'WeakMap')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>{{ CompatOpera(23) }}</td>
+ <td>7.1</td>
+ </tr>
+ <tr>
+ <td><code>new WeakMap(iterable)</code></td>
+ <td>38</td>
+ <td>{{CompatGeckoDesktop("36")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{ CompatOpera(25) }}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>clear()</code></td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("20.0")}}</td>
+ <td>11</td>
+ <td>{{ CompatOpera(23) }}</td>
+ <td>7.1</td>
+ </tr>
+ <tr>
+ <td>Constructor argument: <code>new WeakMap(null)</code></td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoDesktop("37")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td>Monkey-patched <code>set()</code> in constructor</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoDesktop("37")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>WeakMap()</code> without <code>new</code> throws</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatGeckoDesktop("42")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>35</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ <tr>
+ <td><code>new WeakMap(iterable)</code></td>
+ <td>38</td>
+ <td>{{CompatGeckoMobile("36")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ </tr>
+ <tr>
+ <td><code>clear()</code></td>
+ <td>35</td>
+ <td>{{CompatGeckoMobile("20.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ <tr>
+ <td>Constructor argument: <code>new WeakMap(null)</code></td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("37")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td>Monkey-patched <code>set()</code> in constructor</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("37")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ <tr>
+ <td><code>WeakMap()</code> without <code>new</code> throws</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("42")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li><a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=547941">Bug de WeakMap a Mozilla</a></li>
+ <li><a href="http://fitzgeraldnick.com/weblog/53/">Amagant detalls d'implementació amb els WeakMaps de l'ECMAScript 6</a></li>
+ <li>{{jsxref("Map")}}</li>
+ <li>{{jsxref("Set")}}</li>
+ <li>{{jsxref("WeakSet")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html
new file mode 100644
index 0000000000..5155a0a664
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/prototype/index.html
@@ -0,0 +1,132 @@
+---
+title: WeakMap.prototype
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/prototype
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap
+---
+<div>{{JSRef}}</div>
+
+<p>La propietat <code><strong>WeakMap</strong></code><strong><code>.prototype</code></strong> representa el prototip pel constructor {{jsxref("WeakMap")}}.</p>
+
+<div>{{js_property_attributes(0,0,0)}}</div>
+
+<h2 id="Descripció">Descripció</h2>
+
+<p>Les instantànies {{jsxref("WeakMap")}} hereten de {{jsxref("WeakMap.prototype")}}. Es pot utilitzar l'objecte prototip del constructor per afegir propietats o mètodes a totes les instàncies <code>WeakMap.</code></p>
+
+<p><code>WeakMap.prototype</code> és en si mateix només un objecte ordinari:</p>
+
+<pre class="brush: js">Object.prototype.toString.call(WeakMap.prototype); // "[object Object]"</pre>
+
+<h2 id="Propietats">Propietats</h2>
+
+<dl>
+ <dt><code>WeakMap.prototype.constructor</code></dt>
+ <dd>Retorna la funció que ha creat un prototip de la instància. Aquesta és la funció {{jsxref("WeakMap")}} per defecte.</dd>
+</dl>
+
+<h2 id="Mètodes">Mètodes</h2>
+
+<dl>
+ <dt>{{jsxref("WeakMap.delete", "WeakMap.prototype.delete(key)")}}</dt>
+ <dd>Elimina qualsevol valor associat a <code>key</code>. <code>WeakMap.prototype.has(key)</code> retornarà <code>false</code> després d'això.</dd>
+ <dt>{{jsxref("WeakMap.get", "WeakMap.prototype.get(key)")}}</dt>
+ <dd>Retorna el valor associat a <code>key</code>, o <code>undefined</code> si no n'hi ha cap.</dd>
+ <dt>{{jsxref("WeakMap.has", "WeakMap.prototype.has(key)")}}</dt>
+ <dd>Retorna un booleà afirmant si un valor s'ha associat o no a la <code>key</code> en l'objecte <code>WeakMap</code>.</dd>
+ <dt>{{jsxref("WeakMap.set", "WeakMap.prototype.set(key, value)")}}</dt>
+ <dd>Estableix el valor per la <code>key</code> en l'objecte <code>WeakMap.</code> Retorna l'objecte <code>WeakMap.</code></dd>
+ <dt><s class="obsoleteElement">{{jsxref("WeakMap.prototype.clear()")}} {{obsolete_inline}}</s></dt>
+ <dd><s class="obsoleteElement">Elimina totes les parelles clau/valor de l'objecte <code>WeakMap.</code> Vegeu que es posible implementar un objecte <code>WeakMap</code>-like que tingui un mètode <code>.clear()</code> per mitjà d'encapsular un objecte <code>WeakMap </code>que no ho tingui (vegeu un exemple a la pàgina {{jsxref("WeakMap")}})</s></dd>
+</dl>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap.prototype', 'WeakMap.prototype')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ <tr>
+ <td>Objecte ordinari</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoDesktop("40")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Chrome per Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ <tr>
+ <td>Objecte ordinari</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatGeckoMobile("40")}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ <td>{{CompatUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("Map.prototype")}}</li>
+</ul>
diff --git a/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html b/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html
new file mode 100644
index 0000000000..800a097971
--- /dev/null
+++ b/files/ca/web/javascript/reference/global_objects/weakmap/set/index.html
@@ -0,0 +1,120 @@
+---
+title: WeakMap.prototype.set()
+slug: Web/JavaScript/Reference/Global_Objects/WeakMap/set
+translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/set
+---
+<div>{{JSRef}}</div>
+
+<p>El mètode <code><strong>set()</strong></code> afegeix un nou element amb una <code>key</code> i un <code>value</code> especificats a un objecte <code>WeakMap</code>.</p>
+
+<h2 id="Sintaxi">Sintaxi</h2>
+
+<pre class="syntaxbox"><code><em>wm</em>.set(key, value);</code></pre>
+
+<h3 id="Paràmetres">Paràmetres</h3>
+
+<dl>
+ <dt>key</dt>
+ <dd>Necesari. La clau de l'element a afegir al objecte <code>WeakMap.</code></dd>
+ <dt>value</dt>
+ <dd>Necesari. El valor de l'element a afegir a l'objecte <code>WeakMap.</code></dd>
+</dl>
+
+<h3 id="Valor_de_retorn">Valor de retorn</h3>
+
+<p>L'objecte <code>WeakMap</code>.</p>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Utilitzar_el_mètode_set">Utilitzar el mètode <code>set</code></h3>
+
+<pre class="brush: js">var wm = new WeakMap();
+var obj = {};
+
+// Afegir nous elements al WeakMap
+wm.set(obj, "foo").set(window, "bar"); // chainable
+
+// Actualitzem un element en WeakMap
+wm.set(obj, "baz");
+</pre>
+
+<h2 id="Especificacions">Especificacions</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Especificació</th>
+ <th scope="col">Estat</th>
+ <th scope="col">Comentaris</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Definició inicial</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>36</td>
+ <td>{{CompatGeckoDesktop("6.0")}}</td>
+ <td>11</td>
+ <td>23</td>
+ <td>7.1</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Característica</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Suport bàsic</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatGeckoMobile("6.0")}}</td>
+ <td>{{CompatNo}}</td>
+ <td>{{CompatNo}}</td>
+ <td>8</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Notes_específiques_per_a_Firefox">Notes específiques per a Firefox</h2>
+
+<ul>
+ <li>Abans de Firefox 33 {{geckoRelease("33")}}, <code>WeakMap.prototype.set</code> retornava <code>undefined</code> al no poder-se encadenar. Això s'ha arreglat  ({{bug(1031632)}}). El comportament es pot trobar també a Chrome/v8 (<a href="https://code.google.com/p/v8/issues/detail?id=3410">problema</a>).</li>
+</ul>
+
+<h2 id="Vegeu_també">Vegeu també</h2>
+
+<ul>
+ <li>{{jsxref("WeakMap")}}</li>
+ <li>{{jsxref("WeakMap.prototype.get()")}}</li>
+ <li>{{jsxref("WeakMap.prototype.has()")}}</li>
+</ul>