--- id: 598f48a36c8c40764b4e52b3 title: Prevent Object Mutation challengeType: 1 videoUrl: '' localeTitle: Impedir a mutação de objetos --- ## Description
Como visto no desafio anterior, a declaração const sozinha não protege seus dados da mutação. Para garantir que seus dados não sejam alterados, o JavaScript fornece uma função Object.freeze para impedir a mutação de dados. Quando o objeto estiver congelado, você não poderá mais adicionar, atualizar ou excluir propriedades dele. Qualquer tentativa de alterar o objeto será rejeitada sem erro.
deixe obj = {
nome: "FreeCodeCamp",
revisão: "Awesome"
};
Object.freeze (obj);
obj.review = "mau"; // será ignorado. Mutação não permitida
obj.newProp = "Teste"; // será ignorado. Mutação não permitida
console.log (obj);
// {name: "FreeCodeCamp", resenha: "Awesome"}
## Instructions
Neste desafio, você usará Object.freeze para impedir que constantes matemáticas sejam alteradas. Você precisa congelar o objeto MATH_CONSTANTS para que ninguém seja capaz de alterar o valor de PI , adicionar ou excluir propriedades.
## Tests
```yml tests: - text: Não substitua a palavra-chave const . testString: 'getUserInput => assert(getUserInput("index").match(/const/g), "Do not replace const keyword.");' - text: MATH_CONSTANTS deve ser uma variável constante (usando const ). testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS/g), "MATH_CONSTANTS should be a constant variable (by using const).");' - text: Não altere MATH_CONSTANTS original. testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS\s+=\s+{\s+PI:\s+3.14\s+};/g), "Do not change original MATH_CONSTANTS.");' - text: PI é igual a 3.14 . testString: 'assert(PI === 3.14, "PI equals 3.14.");' ```
## Challenge Seed
```js function freezeObj() { "use strict"; const MATH_CONSTANTS = { PI: 3.14 }; // change code below this line // change code above this line try { MATH_CONSTANTS.PI = 99; } catch( ex ) { console.log(ex); } return MATH_CONSTANTS.PI; } const PI = freezeObj(); ```
## Solution
```js // solution required ```