From a55b575e8089ee6cab7c5c262a7e6db55d0e34d6 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:46:50 +0100 Subject: unslug es: move --- .../global_objects/weakmap/clear/index.html | 52 ++++ .../global_objects/weakmap/delete/index.html | 124 +++++++++ .../global_objects/weakmap/get/index.html | 80 ++++++ .../global_objects/weakmap/has/index.html | 83 ++++++ .../reference/global_objects/weakmap/index.html | 278 +++++++++++++++++++++ .../global_objects/weakmap/set/index.html | 91 +++++++ 6 files changed, 708 insertions(+) create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/clear/index.html create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/delete/index.html create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/get/index.html create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/has/index.html create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/index.html create mode 100644 files/es/web/javascript/reference/global_objects/weakmap/set/index.html (limited to 'files/es/web/javascript/reference/global_objects/weakmap') diff --git a/files/es/web/javascript/reference/global_objects/weakmap/clear/index.html b/files/es/web/javascript/reference/global_objects/weakmap/clear/index.html new file mode 100644 index 0000000000..b5c66c7714 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/clear/index.html @@ -0,0 +1,52 @@ +--- +title: WeakMap.prototype.clear() +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/clear +tags: + - JavaScript + - Obsolete + - Protocols + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear +--- +
{{JSRef}} {{obsolete_header}}
+ +

El método clear() es utilizado para suprimir todos los elementos del objeto WeakMap, sin embargo, ya no es parte de ECMAScript, ni de sus implementaciones.

+ +

Sintaxis

+ +
wm.clear();
+ +

Ejemplos

+ +

Utilización del método clear 

+ +
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
+
+ +

Especificaciones

+ +

No es parte de ninguna especificación actual o borrador. Este método fue parte de ECMAScript 6 como un bosquejo hasta la revisión 28 (versión de Octubre 14, 2014), sin embargo ha sido eliminado en versiones posteriores. No es parte de la última versión estándar.

+ +

Compatibilidad con navegadores

+ + + +

{{Compat("javascript.builtins.WeakMap.clear")}}

+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/global_objects/weakmap/delete/index.html b/files/es/web/javascript/reference/global_objects/weakmap/delete/index.html new file mode 100644 index 0000000000..7f4933eb0b --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/delete/index.html @@ -0,0 +1,124 @@ +--- +title: WeakMap.prototype.delete() +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/delete +tags: + - ECMAScript6 + - JavaScript + - Prototype + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/delete +--- +
{{JSRef}}
+ +

El método delete() elimina un elemento específico del objeto WeakMap .

+ +

Sintaxis

+ +
wm.delete(key);
+ +

Parámetros

+ +
+
identificador (key)
+
Requerido. El identificador del elemento a eliminar en el objeto WeakMap.
+
+ +

Valor de retorno

+ +

true si el elemento del objeto WeakMap ha sido eliminado correctamente. Y false si la llave a eliminar no fue encontrada en el objeto WeakMap o bien, si la llave no es un objeto.

+ +

Ejemplos

+ +

Utilización del método delete 

+ +
var wm = new WeakMap();
+wm.set(window, "foo");
+
+wm.delete(window); // Devuelve true. Eliminado correctamente.
+
+wm.has(window);    // Devuelve false. El elemento window ya no es parte de WeakMap.
+
+ +

Especificaciones

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.delete', 'WeakMap.prototype.delete')}}{{Spec2('ESDraft')}} 
+ +

Compatibilidad con navegadores

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support36{{CompatGeckoDesktop("6.0")}}11237.1
+
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureAndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatNo}}{{CompatGeckoMobile("6.0")}}{{CompatNo}}{{CompatNo}}8
+
+ +

Notas especificas de Firefox

+ + + +

Vea también

+ + diff --git a/files/es/web/javascript/reference/global_objects/weakmap/get/index.html b/files/es/web/javascript/reference/global_objects/weakmap/get/index.html new file mode 100644 index 0000000000..e60e34f8f1 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/get/index.html @@ -0,0 +1,80 @@ +--- +title: WeakMap.prototype.get() +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/get +tags: + - ECMAScript6 + - JavaScript + - Method + - Prototype + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/get +--- +
{{JSRef}}
+ +

El método get() devuelve un elemento específico del objeto WeakMap.

+ +
{{EmbedInteractiveExample("pages/js/weakmap-prototype-get.html")}}
+ + + +

Sintaxis

+ +
wm.get(key);
+ +

Parámetros

+ +
+
key
+
Requerido. Es la llave del elemento a retornar desde el objeto WeakMap.
+
+ +

Valores devueltos

+ +

El elemento asociado con la llave específica en el objeto WeakMap. Si la llave no está presente, devolverá {{jsxref("undefined")}}.

+ +

Ejemplos

+ +

Usando el método get 

+ +
var wm = new WeakMap();
+wm.set(window, 'foo');
+
+wm.get(window); // Devuelve "foo".
+wm.get('baz');  // Devuelve undefined.
+
+ +

Especificaciones

+ + + + + + + + + + + + + + + + + + + +
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}{{Spec2('ESDraft')}} 
+ +

Compatibilidad con navegadores

+ + + +

{{Compat("javascript.builtins.WeakMap.get")}}

+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/global_objects/weakmap/has/index.html b/files/es/web/javascript/reference/global_objects/weakmap/has/index.html new file mode 100644 index 0000000000..dd978ede16 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/has/index.html @@ -0,0 +1,83 @@ +--- +title: WeakMap.prototype.has() +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/has +tags: + - ECMAScript6 + - JavaScript + - Method + - Protocols + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/has +--- +
{{JSRef}}
+ +

El método has() devuelve un boleano indicando ya sea, si el elemento con la llave específica existe o no en el objeto WeakMap.

+ +
{{EmbedInteractiveExample("pages/js/weakmap-prototype-has.html")}}
+ + + +

Sintaxis

+ +
wm.has(key);
+ +

Parámetros

+ +
+
identificador (key)
+
Requerido. La llave del elemento a comprobar en el objeto WeakMap.
+
+ +

Valor devuelto

+ +
+
Boolean
+
Devuelve true si el elemento con la llave específica existe en el objeto WeakMap; de no encontrarse, devolverá false.
+
+ +

Ejemplos

+ +

Utilización del método has 

+ +
var wm = new WeakMap();
+wm.set(window, 'foo');
+
+wm.has(window); // Devuelve true
+wm.has('baz');  // Devuelve false
+
+ +

Especificaciones

+ + + + + + + + + + + + + + + + + + + +
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}{{Spec2('ESDraft')}} 
+ +

Compatibilidad con navegadores

+ + + +

{{Compat("javascript.builtins.WeakMap.has")}}

+ +

Vea también

+ + diff --git a/files/es/web/javascript/reference/global_objects/weakmap/index.html b/files/es/web/javascript/reference/global_objects/weakmap/index.html new file mode 100644 index 0000000000..0fed17e5ca --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/index.html @@ -0,0 +1,278 @@ +--- +title: WeakMap +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap +tags: + - ECMAScript 2015 + - JavaScript + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap +--- +
{{JSRef}}
+ +

El objeto WeakMap es una colección de pares clave/valor en la que las claves son objetos y los valores son valores arbitrarios.

+ +

Sintaxis

+ +
new WeakMap([iterable])
+
+ +

Parámetros

+ +
+
iterable
+
Iterable es un Array u otro objeto iterable cuyos elementos son pares clave-valor (Arrays de dos elementos). Cada par clave-valor será añadido al nuevo WeakMap. null es tratado como undefined.
+
+ +

Descripción

+ +

Las claves de los WeakMaps solamente pueden ser del tipo Object. Los {{Glossary("Primitive", "Primitive data types")}} como claves no están permitidos (ej. un {{jsxref("Symbol")}} no pueden ser una clave de WeakMap).

+ +

¿Por qué WeakMap?

+ +

El programador de JavaScript experimentado se habrá dado cuenta que esta API podría ser implementada en JavaScript con dos arrays (uno para las claves, otro para los valores) compartidos por los cuatro métodos de la API. Dicha implementación habría tenido dos inconvenientes principales: El primero es una búsqueda O(n) (siendo n el número de claves en el mapa). El segundo es un problema de pérdida de memoria. Con mapas escritos manualmente, el array de las claves mantendría referencias a la objetos clave, impidiéndoles ser recolectados. En los WeakMap nativos, las referencias a los objetos clave son mantenidas "débilmente", lo que quiere decir que no impiden la recolección de basura en caso de que no haya otras referencias al objeto.

+ +

Dado que las referencias son débiles, las claves de WeakMap no son enumerables (ej: no existe un método que te devuelva la lista de las claves). Si existiera, la lista dependería de la recolección de basura, introduciendo indeterminismo. Si quieres una lista de las claves, se debe usar un  {{jsxref("Map")}} o mantenerla tu mismo.

+ +

Propiedades

+ +
+
WeakMap.length
+
El valor de la propiedad length es 0.
+
{{jsxref("WeakMap.prototype")}}
+
Representa el prototipo para el nuevo constructor WeakMap. Permite añadir propiedades a todos los objetos WeakMap.
+
+ +

Instancias de WeakMap

+ +

Todas las instancias de WeakMap heredan de {{jsxref("WeakMap.prototype")}}.

+ +

Propiedades

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Properties')}}

+ +

Métodos

+ +

{{page('en-US/Web/JavaScript/Reference/Global_Objects/WeakMap/prototype','Methods')}}

+ +

Ejemplos

+ +

Usando WeakMap

+ +
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 puede ser cualquier cosa, incluidos objetos o funciones
+wm2.set(o3, undefined);
+wm2.set(wm1, wm2); // claves y valores pueden ser objetos cualesquiera. !Incluso WeakMaps!
+
+wm1.get(o2); // "azerty"
+wm2.get(o2); // undefined, porque no hay valor para o2 en wm2
+wm2.get(o3); // undefined, porque es es el valor del conjunto
+wm1.has(o2); // true
+wm2.has(o2); // false
+wm2.has(o3); // true (incluso si el valor es 'undefined')
+
+wm3.set(o1, 37);
+wm3.get(o1); // 37
+
+wm1.has(o1);   // true
+wm1.delete(o1);
+wm1.has(o1);   // false
+
+
+ +

Implementando una clase tipo-WeakMap con un método .clear()

+ +

Con propósito expositivo, el siguiente ejemplo usa el nuevo costruct class  de ECMAScript 2015, que actualmente no ha sido implementado de forma amplia.

+ +
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
+  }
+}
+
+ +

Especificaciones

+ + + + + + + + + + + + + + + + +
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-weakmap-objects', 'WeakMap')}}{{Spec2('ES2015')}}Definición inicial.
+ +

Compatibilidad de navegadores

+ +

{{CompatibilityTable}}

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaracterísticaChromeFirefox (SpiderMonkey)Internet ExplorerOperaSafari
Soporte básico36{{CompatGeckoDesktop("6.0")}}11{{ CompatOpera(23) }}7.1
new WeakMap(iterable)38{{CompatGeckoDesktop("36")}}{{CompatNo}}{{ CompatOpera(25) }}{{CompatNo}}
clear()36{{CompatGeckoDesktop("20.0")}}11{{ CompatOpera(23) }}7.1
Constructor argument: new WeakMap(null){{CompatVersionUnknown}}{{CompatGeckoDesktop("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
Monkey-patched set() in Constructor{{CompatVersionUnknown}}{{CompatGeckoDesktop("37")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
WeakMap() without new throws{{CompatVersionUnknown}}{{CompatGeckoDesktop("42")}}11{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CaracterísticaAndroidFirefox Mobile (SpiderMonkey)IE MobileOpera MobileSafari Mobile
Soporte básico35{{CompatGeckoMobile("6.0")}}{{CompatNo}}{{CompatNo}}iOS 8
new WeakMap(iterable)38{{CompatGeckoMobile("36")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
clear()35{{CompatGeckoMobile("20.0")}}{{CompatNo}}{{CompatNo}}iOS 8
Constructor argument: new WeakMap(null){{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}
Monkey-patched set() in Constructor{{CompatUnknown}}{{CompatVersionUnknown}}{{CompatGeckoMobile("37")}}{{CompatUnknown}}{{CompatUnknown}}
WeakMap() without new throws{{CompatUnknown}}{{CompatGeckoMobile("42")}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +

+ +

Ver también

+ + diff --git a/files/es/web/javascript/reference/global_objects/weakmap/set/index.html b/files/es/web/javascript/reference/global_objects/weakmap/set/index.html new file mode 100644 index 0000000000..0dd654e6ef --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/weakmap/set/index.html @@ -0,0 +1,91 @@ +--- +title: WeakMap.prototype.set() +slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/set +tags: + - ECMAScript6 + - JavaScript + - Method + - Protocols + - WeakMap +translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/set +--- +
{{JSRef}}
+ +

El método set() añade un nuevo elemento con su key y value específicos al objeto WeakMap.

+ +
{{EmbedInteractiveExample("pages/js/weakmap-prototype-set.html")}}
+ + + +

Sintaxis

+ +
wm.set(key, value);
+ +

Parámetros

+ +
+
indentificador (key)
+
Requerido. El identificador (objeto) del elemento a añadir al objeto WeakMap.
+
valor (value)
+
Requerido. El valor del elemento a añadir al objeto WeakMap.
+
+ +

Valor devuelto

+ +

El objeto WeakMap.

+ +

Ejemplos

+ +

Utilización del método set 

+ +
var wm = new WeakMap();
+var obj = {};
+
+// Agregando nuevos elementos a WeakMap
+wm.set(obj, 'foo').set(window, 'bar'); // encadenamiento
+// Actualiza el un elemento en el objeto WeakMap
+wm.set(obj, 'baz');
+
+
+ +

Especificaciones

+ + + + + + + + + + + + + + + + + + + +
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}{{Spec2('ESDraft')}} 
+ +

Compatibilidad con navegadores

+ + + +

{{Compat("javascript.builtins.WeakMap.set")}}

+ +

Notas específicas de Firefox

+ + + +

Vea también

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