Files
freeCodeCamp/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/prevent-object-mutation.russian.md

3.3 KiB
Raw Blame History

id, title, challengeType, forumTopicId, localeTitle
id title challengeType forumTopicId localeTitle
598f48a36c8c40764b4e52b3 Prevent Object Mutation 1 301207 Предотвращение мутации объектов

Description

Как видно из предыдущей задачи, одно только объявление const не защищает ваши данные от мутации. Чтобы ваши данные не менялись, JavaScript предоставляет функцию Object.freeze для предотвращения мутации данных. После того, как объект будет заморожен, вы больше не сможете добавлять, обновлять или удалять из него свойства. Любая попытка изменить объект будет отклонена без ошибок.
пусть obj = {
Название: "FreeCodeCamp",
Обзор: «Высокий»
};
Object.freeze (OBJ);
obj.review = "bad"; // будет проигнорирован. Мутация не допускается
obj.newProp = "Test"; // будет проигнорирован. Мутация не допускается
console.log (OBJ);
// {name: "FreeCodeCamp", обзор: "Awesome"}

Instructions

В этой задаче вы собираетесь использовать Object.freeze для предотвращения изменения математических констант. Вам необходимо заморозить объект MATH_CONSTANTS чтобы никто не мог изменять значение свойств PI , добавлять или удалять.

Tests

tests:
  - text: Do not replace <code>const</code> keyword.
    testString: getUserInput => assert(getUserInput('index').match(/const/g));
  - text: <code>MATH_CONSTANTS</code> should be a constant variable (by using <code>const</code>).
    testString: getUserInput => assert(getUserInput('index').match(/const\s+MATH_CONSTANTS/g));
  - text: Do not change original <code>MATH_CONSTANTS</code>.
    testString: getUserInput => assert(getUserInput('index').match(/const\s+MATH_CONSTANTS\s+=\s+{\s+PI:\s+3.14\s+};/g));
  - text: <code>PI</code> equals <code>3.14</code>.
    testString: assert(PI === 3.14);

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

function freezeObj() {
  'use strict';
  const MATH_CONSTANTS = {
    PI: 3.14
  };
  // change code below this line
  Object.freeze(MATH_CONSTANTS);

  // change code above this line
  try {
    MATH_CONSTANTS.PI = 99;
  } catch(ex) {
    console.log(ex);
  }
  return MATH_CONSTANTS.PI;
}
const PI = freezeObj();