2.7 KiB
2.7 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
598f48a36c8c40764b4e52b3 | Prevent Object Mutation | 1 | Impedir a mutação de objetos |
Description
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
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
tests:
- text: Não substitua a palavra-chave <code>const</code> .
testString: 'getUserInput => assert(getUserInput("index").match(/const/g), "Do not replace <code>const</code> keyword.");'
- text: <code>MATH_CONSTANTS</code> deve ser uma variável constante (usando <code>const</code> ).
testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS/g), "<code>MATH_CONSTANTS</code> should be a constant variable (by using <code>const</code>).");'
- text: Não altere <code>MATH_CONSTANTS</code> original.
testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS\s+=\s+{\s+PI:\s+3.14\s+};/g), "Do not change original <code>MATH_CONSTANTS</code>.");'
- text: <code>PI</code> é igual a <code>3.14</code> .
testString: 'assert(PI === 3.14, "<code>PI</code> equals <code>3.14</code>.");'
Challenge Seed
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
// solution required