Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. Proxy
  6. Constructor Proxy()
  7. handler.set()

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

handler.set()

Baseline Widely available

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

El métodohandler.set() captura las asignaciones de un valor a una determinada propiedad.

Sintaxis

js
var p = new Proxy(target, {  set: function (target, property, value, receiver) {},});

Parámetros

El métodoset recibe los siguientes parámetros.this se asocia al handler.

target

El objeto objetivo.

property

El nombre de la propiedad a la que se le asignará el valor.

value

El nuevo valor asignado a la propiedad.

receiver

El objeto al que originalmente iba dirigida la asignación. Normalmente es el proxy. Sin embargo el manejador oset handler puede ser llamado de forma indirecta a través de un prototipo entre otros.

Por ejemplo, suponga que un escript ejecuta la sentenciaobj.name = "jen", yobj no es un proxy, y no posee la propiedad.name, pero tiene un proxy en su cadena de prototipos. El manejadorset de este proxy será llamado y obj será pasado como el receiver.

Valor Devuelto

El métodoset debe devolver un valor booleano. Devolverátrue para indicar que la asignación se ha llevado a cabo con éxito. Si devuelvefalse, y la asignación tiene lugar en modo estricto, se lanzará un error de tipoTypeError.

Descripción

El métodohandler.set captura la asignación de un valor a una propiedad.

Qué intercepta

Las siguientes operaciones son capturadas:

  • Asignación a propiedades:proxy[foo] = bar yproxy.foo = bar
  • Asignación a propiedades heredadas:Object.create(proxy)[foo] = bar
  • Reflect.set()

Invariantes

Si los siguientes invariantes son violados, el proxy lanzará unTypeError:

  • El valor de la propiedad no puede ser diferente al de la correspondiente propiedad del objeto, si esta es una propiedad no configurable, o sin permisos de escritura.
  • No se puede asignar un valor a una propiedad si la correspondiente propiedad en el objeto objetivo es no configurable y tieneundefined como su atributo [[Set]].
  • En modo estricto, la devolución defalse pro parte del manejadorset lanzará una excepción del tipoTypeError.

Ejemplos

El siguiente código captura la asignación de un valor a una propiedad.

js
var p = new Proxy(  {},  {    set: function (target, prop, value, receiver) {      target[prop] = value;      console.log("property set: " + prop + " = " + value);      return true;    },  },);console.log("a" in p); // falsep.a = 10; // "propiedad asignada: a = 10"console.log("a" in p); // trueconsole.log(p.a); // 10

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver

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