Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Funciones
  5. setter

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

setter

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

La sintaxisset 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-propiedadactual al objetolenguaje. Cuando se le asigne un valor aactual, actualizalog con ese valor:

js
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 queactual no está definido y cualquier intento de accederlo devolveráundefined.

Eliminando un setter con el operadordelete

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

js
delete lenguaje.actual;

Definiendo un setter en un objecto existente usandodefineProperty

Para añadir un setter a un objetoexistente, useObject.defineProperty()

js
const 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.

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

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-method-definitions

Compatibilidad con navegadores

Ver también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp