JavaScript | método handler.preventExtensions()

El método handler.preventExtensions() en JavaScript es una trampa para el método Object.preventExtensions() y devuelve un valor booleano.
Sintaxis: 
 

const p = new Proxy(target, {
  preventExtensions: function(target) {
  }
});

Parámetros: este método acepta un solo parámetro de destino que contiene el objeto de destino.
Valor devuelto: este método devuelve un valor booleano.
Los siguientes ejemplos ilustran el método handler.preventExtensions() en JavaScript:
Ejemplo 1: 
 

javascript

<script>
const monster1 = {
  canEvolve: true
};
 
const handler1 = {
  preventExtensions(target) {
    target.canEvolve = false;
    Object.preventExtensions(target);
    return true;
  }
};
 
const proxy1 = new Proxy(monster1, handler1);
 
document.writeln(monster1.canEvolve);
document.writeln("<br>");
document.writeln(Object.preventExtensions(proxy1));
document.writeln("<br>");
document.writeln(monster1.canEvolve);
document.writeln("<br>");
 
const proxy = new Proxy({}, { 
   preventExtensions: function(target) { 
   Object.preventExtensions(target); 
   return !Object.isExtensible(target); 
  } 
}); 
document.writeln(Object.isExtensible(proxy));
</script>

Producción: 
 

true
[object Object]
false
true

Ejemplo 2: 
 

javascript

<script>
const p = new Proxy({}, {
  preventExtensions: function(target) {
    document.writeln('preventExtensions()'+"<br>");
    document.writeln(Object.preventExtensions(target)+"<br>");
    return true;
  }
});
 
document.writeln(Object.preventExtensions(p)+"<br>");
 
var x = { 
  first: false 
}; 
var y ={ 
  preventExtensions(target) { 
    target.canEvolve = false; 
    Object.preventExtensions(target); 
    return true; 
  } 
}; 
var proxy = new Proxy(x, y); 
document.writeln(x.first); 
Object.preventExtensions(proxy); 
document.writeln("<br/>"); 
document.writeln(x.first);
</script>

Producción: 
 

preventExtensions()
[object Object]
[object Object]
false
false

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

  • Google Chrome 49 y superior
  • Borde 12 y superior
  • Firefox 22 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

Deja una respuesta

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