JavaScript | Método Object.defineProperty()

El método Object.defineProperty() en JavaScript es un objeto integrado estándar que define una nueva propiedad directamente en un objeto y devuelve el objeto.

Sintaxis:

Object.defineProperty(obj, prop, descriptor)

Parámetro: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:

  • Obj: este parámetro contiene el objeto en el que el usuario definirá la propiedad.
  • Prop: Este parámetro contiene el nombre de una propiedad que se va a definir o modificar.
  • Descriptor: este parámetro contiene el descriptor de la propiedad que se está definiendo o modificando.

Valor devuelto: este método devuelve el objeto que se pasa como argumento a la función.

Los siguientes ejemplos ilustran el método Object.defineProperty() en JavaScript:

Ejemplo 1:

<script>
const geek1 = {};
Object.defineProperty(geek1, 'prop1', {
  value: 65,
  writable: false
});
geek1.prop1 = 7;
console.log(geek1.prop1);
  
const geek2 = {};  
Object.defineProperty(geek2, 'prop2', {  
      
  value: 54,  
  value: 23,  
  value: 12*9,  
  });  
geek2.prop2 ;  
console.log(geek2.prop2); 
</script> 

Producción:

65
108

Ejemplo 2:

<script>
function gfg() {
}
  
var result;
Object.defineProperty(gfg.prototype, "valx", {
  get() {
    return result;
  },
  set(valx) {
    result = valx;
  }
});
  
var vala = new gfg();
var valb = new gfg();
vala.valx = 6;
console.log(valb.valx);
  
function gfg1() {
}
  
gfg1.prototype.valx = 4;
Object.defineProperty(gfg1.prototype, "valy", {
  writable: false,
  value: 8
});
  
var vala = new gfg1();
vala.valx = 4;
console.log(vala.valx); 
console.log(gfg1.prototype.valx); 
vala.valy = 2;
console.log(vala.valy);
console.log(gfg1.prototype.valy);
</script> 

Producción:

6
4
4
8
8

Navegadores compatibles: los navegadores compatibles con el método Object.defineProperty() se enumeran a continuación:

  • Google Chrome
  • Firefox
  • Ópera
  • Safari
  • Borde

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *