JavaScriptProgramación

Object.preventExtensions(): La función para evitar la modificación de objetos en JavaScript

Aprenda a usar Object.preventExtensions() para proteger sus objetos de cambios inesperados

En el lenguaje de programación JavaScript, es común trabajar con objetos que necesitan ser modificados y actualizados a medida que avanza el proyecto. Sin embargo, en algunas situaciones, se puede requerir proteger un objeto de cambios inesperados o no deseados. Para abordar este problema, JavaScript ofrece la función Object.preventExtensions().

Ejemplo 1: Prevenir la modificación de un objeto


const obj = { name: 'John', age: 25 };
Object.preventExtensions(obj);
console.log(Object.isExtensible(obj)); // false

Descripción: En este ejemplo, se utiliza Object.preventExtensions() para evitar la extensión del objeto «obj». La propiedad «age» ya existe en el objeto, pero no podemos agregar nuevas propiedades al objeto.

Ejemplo 2: Prevenir la modificación de un objeto con herencia


function Person(name, age) {
  this.name = name;
  this.age = age;
}
const person = new Person('John', 25);
Object.preventExtensions(person);
console.log(Object.isExtensible(person)); // false

Descripción: Aquí, se utiliza Object.preventExtensions() en un objeto creado a partir de una función de construcción (constructor function). Aunque no podemos agregar nuevas propiedades al objeto «person», las propiedades existentes pueden ser modificadas.

Ejemplo 3: Prevenir la modificación y adición de propiedades en un objeto


const obj = { name: 'John', age: 25 };
Object.freeze(obj);
console.log(Object.isFrozen(obj)); // true

Descripción: En este ejemplo, se utiliza Object.freeze() en lugar de Object.preventExtensions(). Esto no solo evita la adición de nuevas propiedades al objeto, sino que también bloquea la modificación de las propiedades existentes.

Ejemplo 4: Prevenir la adición de propiedades en un objeto heredado


function Person(name, age) {
  this.name = name;
  this.age = age;
}
Object.preventExtensions(Person.prototype);

Descripción: Aquí, se utiliza Object.preventExtensions() en el prototype de la función de construcción «Person». Esto evita que las instancias de «Person» adicionen nuevas propiedades, pero no bloquea la modificación de las propiedades existentes ni preveé la adición de nuevas propiedades al objeto creado a partir de «Person».

Ejemplo 5: Comprobar si un objeto es extensible


const obj = { name: 'John', age: 25 };
Object.preventExtensions(obj);
console.log(Object.isExtensible(obj)); // false

Descripción: En este ejemplo, se utiliza Object.isExtensible() para comprobar si un objeto es extensible. Después de aplicar Object.preventExtensions(), el resultado será falso.

Ejemplo 6: Comprobar si un objeto está congelado


const obj = { name: 'John', age: 25 };
Object.freeze(obj);
console.log(Object.isFrozen(obj)); // true

Descripción: Aquí, se utiliza Object.isFrozen() para comprobar si un objeto está congelado. Después de aplicar Object.freeze(), el resultado será verdadero.

Conclusión

Object.preventExtensions() es una herramienta valiosa para proteger sus objetos de cambios inesperados y garantizar que se mantengan estables a lo largo del tiempo. Al utilizar esta función en sus proyectos, los desarrolladores pueden evitar errores y garantizar la estabilidad de sus objetos. Para integrar Object.preventExtensions() en sus proyectos futuros, es importante comprender su funcionamiento y cómo se puede aplicar de manera efectiva.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.