El método handler.set() en JavaScript es una trampa para establecer un valor de propiedad. Este método devuelve un valor booleano.
Sintaxis:
const p = new Proxy(target, { set: function(target, property, value, receiver) { } });
Parámetros: Este método acepta cuatro parámetros como se mencionó anteriormente y se describe a continuación:
- target: este parámetro contiene el objeto de destino.
- propiedad: este parámetro contiene el nombre o el símbolo de la propiedad.
- valor: este parámetro contiene el nuevo valor de la propiedad.
- receptor: este parámetro contiene el objeto al que se dirigió originalmente la asignación.
Valor devuelto : este método siempre devuelve un valor booleano.
Los siguientes ejemplos ilustran el método handler.set() en JavaScript:
Ejemplo 1:
javascript
function gfg() { this.users = "Millions"; } const handler1 = { set(obj, prop, value) { if ((prop === 'users') && ((value % 2) !== 0)) { console.log('GEEKSFORGEEKS : Computer Science Portal'); } else { return Reflect.set(...arguments); } } }; const gfg1 = new gfg(); const proxy1 = new Proxy(gfg1, handler1); proxy1.users = 1; console.log(proxy1.users);
Producción:
"GEEKSFORGEEKS : Computer Science Portal" "Millions"
Ejemplo 2:
javascript
const 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); p.a = 10; console.log('a' in p); console.log(p.a); var x = { foo: 1 }; var proxy = new Proxy(x, { set: function(target, name, value, proxy) { target[name] = value+" --> "+ value.toUpperCase(); } }); proxy.foo = 'geeksforgeeks'; console.log(x.foo);
Producción:
false "property set: a = 10" true 10 "geeksforgeeks --> GEEKSFORGEEKS"
Navegadores compatibles: los navegadores compatibles con el método handler.set() se enumeran a continuación.
- Google Chrome 49 y superior
- Borde 12 y superior
- Firefox 18 y superior
- Ópera 36 y superior
- Safari 10 y superior
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA