2.7 KiB
2.7 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
598f48a36c8c40764b4e52b3 | Prevent Object Mutation | 1 | Prevenir la mutación de objetos |
Description
const
por sí sola no protege realmente sus datos de la mutación. Para garantizar que sus datos no cambien, JavaScript proporciona una función Object.freeze
para evitar la mutación de datos. Una vez que el objeto está congelado, ya no puede agregar, actualizar o eliminar propiedades de él. Cualquier intento de cambiar el objeto será rechazado sin un error. vamos obj = {
nombre: "FreeCodeCamp",
revisión: "impresionante"
};
Object.freeze (obj);
obj.review = "malo"; // será ignorado. Mutación no permitida
obj.newProp = "Test"; // será ignorado. Mutación no permitida
console.log (obj);
// {nombre: "FreeCodeCamp", revisión: "Impresionante"}
Instructions
Object.freeze
para evitar que Object.freeze
las constantes matemáticas. MATH_CONSTANTS
congelar el objeto MATH_CONSTANTS
para que nadie pueda alterar el valor de PI
, agregar o eliminar propiedades. Tests
tests:
- text: No reemplace la palabra clave <code>const</code> .
testString: 'getUserInput => assert(getUserInput("index").match(/const/g), "Do not replace <code>const</code> keyword.");'
- text: <code>MATH_CONSTANTS</code> debe ser una variable 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: No cambie los <code>MATH_CONSTANTS</code> originales.
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> es 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