64 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Prevent Object Mutation | |||
|  | localeTitle: Предотвращение мутации объектов | |||
|  | --- | |||
|  |  | |||
|  | 
 | |||
|  |  Не забудьте использовать **`Read-Search-Ask`** если вы застряли. Попробуйте подключить программу  и напишите свой собственный код  | |||
|  | 
 | |||
|  | ### Проблема Объяснение:
 | |||
|  | 
 | |||
|  | Нам нужно предотвратить `MATH_CONSTANTS` значения `MATH_CONSTANTS` . | |||
|  | 
 | |||
|  | ##  Подсказка: 1
 | |||
|  | 
 | |||
|  | *   Используйте Object.freeze (obj), чтобы предотвратить изменение объекта. | |||
|  | 
 | |||
|  | > _попытаться решить проблему сейчас_
 | |||
|  | 
 | |||
|  | ## Осторожно, спойлеры!
 | |||
|  | 
 | |||
|  |  | |||
|  | 
 | |||
|  | **Решение впереди!** | |||
|  | 
 | |||
|  | ##  Решение базового кода:
 | |||
|  | 
 | |||
|  | ```javascript | |||
|  |     function freezeObj() {  | |||
|  |       "use strict";  | |||
|  |       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();  | |||
|  | ``` | |||
|  | 
 | |||
|  |  [Код запуска](https://codepen.io/dylantyates/pen/OwVxYB) | |||
|  | 
 | |||
|  | # Код Объяснение:
 | |||
|  | 
 | |||
|  | Используя Object.freeze () в `MATH_CONSTANTS` мы можем избежать манипулирования им. | |||
|  | 
 | |||
|  | #### Связанные ссылки
 | |||
|  | 
 | |||
|  | *   [Object.freeze ()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) | |||
|  | 
 | |||
|  | ##  ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
 | |||
|  | 
 | |||
|  | *    **НЕ** добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это **_похоже, но лучше_** , попробуйте объединить (или заменить) существующее подобное решение. | |||
|  | *   Добавьте объяснение своего решения. | |||
|  | *   Классифицируйте решение в одной из следующих категорий - **Basic** , **Intermediate** и **Advanced** .  | |||
|  | *   Пожалуйста, добавьте свое имя пользователя, только если вы добавили **соответствующее основное содержимое** . (  **_НЕ_** _удаляйте существующие имена пользователей_ ) | |||
|  | 
 | |||
|  | > Видеть  [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для [**`Wiki Challenge Solution Template`**](http://forum.freecodecamp.com/t/algorithm-article-template/14272) для справки.
 |