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 --- .../javascript/referencia/funciones/set/index.html | 217 --------------------- 1 file changed, 217 deletions(-) delete mode 100644 files/es/web/javascript/referencia/funciones/set/index.html (limited to 'files/es/web/javascript/referencia/funciones/set/index.html') diff --git a/files/es/web/javascript/referencia/funciones/set/index.html b/files/es/web/javascript/referencia/funciones/set/index.html deleted file mode 100644 index ef555e6759..0000000000 --- a/files/es/web/javascript/referencia/funciones/set/index.html +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: setter -slug: Web/JavaScript/Referencia/Funciones/set -translation_of: Web/JavaScript/Reference/Functions/set ---- -
{{jsSidebar("Funciones")}}
- -

La sintaxis  set  asocia la propiedad de un objeto a una función que será llamada cuando haya un intento de asignar valor a esa propiedad.

- -

Sintaxis

- -
{set prop(val) { . . . }}
-{set [expression](val) { . . . }}
- -

Parámetros

- -
-
prop
-
El nombre de la propiedad a asociar con la función dada.
-
- -
-
val
-
Un alias para la variable que contiene el valor a asignar a la propiedad.
-
expression
-
A partir de ECMAScript 2015, se puede también usar expresiones para nombres de propiedades computados para asociar a la función dada.
-
- -

Descripción

- -

En JavaScript, un setter puede ser usado para ejecutar una función donde sea que una propiedad se intente cambiar. Los setters son regularmente usados en conjunto con getters para crear un tipo de pseudo-propiedad. No es posible tener simultáneamente un setter en una propiedad que ya tiene un valor.

- -

Tenga en cuenta lo siguiente al trabajar con setters:

- -
- -
- -

Ejemplos

- -

Definiendo un setter en el inicializador de nuevos objetos

- -

En el siguiente ejemplo definimos una pseudo-propiedad  actual  al objeto lenguaje. Cuando se le asigne un valor a actual, actualiza log con ese valor:

- -
var lenguaje = {
-  set actual(mensaje) {
-    this.log.push(mensaje);
-  },
-  log: []
-}
-lenguaje.actual='ES';
-console.log(lenguaje.log); // ['ES']
-
-lenguaje.actual='FR';
-console.log(lenguaje.log); // ['ES', 'FR']
-
- - - -

Note que actual no está definido y cualquier intento de accederlo devolverá undefined.

- -

Eliminando un setter con el operador delete 

- -

Si desea eliminar el setter, puede simplemente aplicar delete en él:

- -
delete lenguaje.actual;
-
- -

Definiendo un setter en un objecto existente usando defineProperty

- -

Para añadir un setter a un objeto existente, use {{jsxref("Object.defineProperty()")}}

- -
consr o = {a: 0};
-
-Object.defineProperty(o, 'b', {
-  set: function (x) { this.a = x / 2; }
-});
-
-o.b = 10; // Ejecuta el setter, el cual asigna 10 / 2 (5) a la propiedad 'a'
-console.log(o.a) // 5
- -

Usando un nombre de propiedad computado

- -
-

Nota: Propiedades computadas son 'experimental technology', parte de la propuesta para ECMAScript 6, y no está soportado en todos los navegadores. Dará error de sintaxis en entornos no soportados.

-
- -
const expr = 'foo';
-
-var obj = {
-  baz: 'bar',
-  set [expr](v) { this.baz = v; }
-};
-
-console.log(obj.baz); // "bar"
-obj.foo = "baz";      // ejecuta el setter
-console.log(obj.baz); // "baz"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Definición inicial.
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Se añaden las propiedades computadas.
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{CompatibilityTable}}

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{CompatChrome(1)}}{{ CompatGeckoDesktop("1.8.1") }}{{ CompatIE(9) }}9.53
Computed property names{{CompatNo}}{{ CompatGeckoDesktop("34") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{ CompatGeckoMobile("1.8.1") }}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
Computed property names{{CompatNo}}{{CompatNo}}{{ CompatGeckoMobile("34.0") }}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Notas específicas para SpiderMonkey-specific

- - - -

Ver también

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