Há 20 anos oferecendo as melhores soluções!

O que é JavaScript Object.preventExtensions()

O que é JavaScript Object.preventExtensions()

O JavaScript é uma linguagem de programação amplamente utilizada para desenvolvimento web. Uma das características poderosas do JavaScript é a capacidade de manipular objetos de forma dinâmica. O método Object.preventExtensions() é uma função nativa do JavaScript que permite controlar a extensibilidade de um objeto, ou seja, determinar se é possível adicionar novas propriedades a esse objeto.

Como funciona o Object.preventExtensions()

Quando um objeto é criado no JavaScript, por padrão, ele é extensível, o que significa que é possível adicionar novas propriedades a esse objeto. No entanto, em alguns casos, pode ser necessário impedir que um objeto seja estendido, ou seja, que novas propriedades sejam adicionadas a ele. É aí que entra o método Object.preventExtensions().

Para utilizar o método Object.preventExtensions(), basta chamá-lo passando o objeto que se deseja tornar não extensível como argumento. Por exemplo:

“`
const obj = { prop1: ‘valor1’, prop2: ‘valor2’ };
Object.preventExtensions(obj);
“`

Após chamar o método Object.preventExtensions(), o objeto `obj` não poderá mais ser estendido, ou seja, não será possível adicionar novas propriedades a ele. Qualquer tentativa de adicionar uma nova propriedade resultará em um erro.

Propriedades existentes

É importante destacar que o método Object.preventExtensions() não afeta as propriedades já existentes no objeto. Ou seja, as propriedades que já foram definidas antes de chamar o método continuarão existindo e poderão ser acessadas normalmente.

Por exemplo:

“`
const obj = { prop1: ‘valor1’, prop2: ‘valor2’ };
Object.preventExtensions(obj);

console.log(obj.prop1); // ‘valor1’
console.log(obj.prop2); // ‘valor2’
“`

Nesse exemplo, mesmo após tornar o objeto `obj` não extensível, ainda é possível acessar as propriedades `prop1` e `prop2` normalmente.

Modo estrito

Quando o método Object.preventExtensions() é chamado em um objeto no modo estrito (strict mode), uma exceção é lançada caso seja feita uma tentativa de adicionar uma nova propriedade ao objeto. No modo não estrito, a tentativa de adicionar uma nova propriedade simplesmente falha silenciosamente, sem lançar exceção.

Para utilizar o modo estrito, basta adicionar a diretiva “use strict” no início do seu código JavaScript. Por exemplo:

“`
“use strict”;

const obj = { prop1: ‘valor1’, prop2: ‘valor2’ };
Object.preventExtensions(obj);

obj.prop3 = ‘valor3’; // Lança uma exceção no modo estrito
“`

No exemplo acima, a tentativa de adicionar a propriedade `prop3` ao objeto `obj` resultará em uma exceção caso o código esteja no modo estrito.

Object.isExtensible()

Além do método Object.preventExtensions(), o JavaScript também fornece o método Object.isExtensible(), que permite verificar se um objeto é extensível ou não. Esse método retorna um valor booleano indicando se o objeto pode ou não ser estendido.

Por exemplo:

“`
const obj = { prop1: ‘valor1’, prop2: ‘valor2’ };
console.log(Object.isExtensible(obj)); // true

Object.preventExtensions(obj);

console.log(Object.isExtensible(obj)); // false
“`

No exemplo acima, o método Object.isExtensible() é utilizado para verificar se o objeto `obj` é extensível antes e depois de chamar o método Object.preventExtensions(). No primeiro caso, o retorno é `true`, indicando que o objeto é extensível. No segundo caso, o retorno é `false`, indicando que o objeto não é extensível.

Considerações finais

O método Object.preventExtensions() é uma ferramenta poderosa para controlar a extensibilidade de objetos no JavaScript. Ele permite determinar se um objeto pode ou não ser estendido, impedindo a adição de novas propriedades. É importante lembrar que o método não afeta as propriedades já existentes no objeto e que seu comportamento pode variar dependendo do modo estrito.

Utilizar corretamente o método Object.preventExtensions() pode contribuir para um código mais seguro e organizado, evitando a adição de propriedades indesejadas a objetos e facilitando a manutenção do código.

Em resumo, o método Object.preventExtensions() é uma função nativa do JavaScript que permite controlar a extensibilidade de objetos, impedindo a adição de novas propriedades. Ele não afeta as propriedades já existentes no objeto e seu comportamento pode variar dependendo do modo estrito. Utilizar corretamente esse método pode contribuir para um código mais seguro e organizado.