2.3 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
598f48a36c8c40764b4e52b3 | Prevenir la mutación del objeto | 1 | 301207 | prevent-object-mutation |
--description--
Como se vio en el desafío anterior, la declaración const
por sí sola no protege la información de la mutación. Para asegurar que tu información no cambie, JavaScript provee una función Object.freeze
para prevenir la mutación de datos.
Cualquier intento de cambiar el objeto será rechazado, lanzando un error si el script se ejecuta en modo estricto (strict mode).
let obj = {
name:"FreeCodeCamp",
review:"Awesome"
};
Object.freeze(obj);
obj.review = "bad";
obj.newProp = "Test";
console.log(obj);
Las asignaciones obj.review
y obj.newProp
provocarán errores, porque nuestro editor se ejecuta en modo estricto por defecto, y la consola mostrará el valor { name: "FreeCodeCamp", review: "Awesome" }
.
--instructions--
En este desafío vas a utilizar Object.freeze
para prevenir el cambio de constantes matemáticas. Necesitas congelar el objeto MATH_CONSTANTS
para que nadie pueda alterar el valor de PI
, añadir o borrar propiedades.
--hints--
No debes reemplazar la palabra clave const
.
(getUserInput) => assert(getUserInput('index').match(/const/g));
MATH_CONSTANTS
debe ser una variable constante (utilizando const
).
(getUserInput) =>
assert(getUserInput('index').match(/const\s+MATH_CONSTANTS/g));
No debes modificar la declaración original de MATH_CONSTANTS
.
(getUserInput) =>
assert(
getUserInput('index').match(
/const\s+MATH_CONSTANTS\s+=\s+{\s+PI:\s+3.14\s+};/g
)
);
PI
debe ser igual a 3.14
.
assert(PI === 3.14);
--seed--
--seed-contents--
function freezeObj() {
const MATH_CONSTANTS = {
PI: 3.14
};
// Only change code below this line
// Only change code above this line
try {
MATH_CONSTANTS.PI = 99;
} catch(ex) {
console.log(ex);
}
return MATH_CONSTANTS.PI;
}
const PI = freezeObj();
--solutions--
function freezeObj() {
const MATH_CONSTANTS = {
PI: 3.14
};
Object.freeze(MATH_CONSTANTS);
try {
MATH_CONSTANTS.PI = 99;
} catch(ex) {
console.log(ex);
}
return MATH_CONSTANTS.PI;
}
const PI = freezeObj();