68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | |||
|  | title: Object Freeze | |||
|  | localeTitle: Замораживание объекта | |||
|  | --- | |||
|  | ## Замораживание объекта
 | |||
|  | 
 | |||
|  | Метод `Object.freeze()` объект. Замороженный объект не _позволит вам_ : | |||
|  | 
 | |||
|  | *   Добавление к нему новых свойств | |||
|  | *   Удаление существующих от него прав | |||
|  | *   Изменение перечислимости, конфигурируемости или возможности записи существующих свойств | |||
|  | 
 | |||
|  | ### Синтаксис
 | |||
|  | 
 | |||
|  | ```javascript | |||
|  | Object.freeze(obj)  | |||
|  | ``` | |||
|  | 
 | |||
|  | ### параметры
 | |||
|  | 
 | |||
|  | `obj` | |||
|  | 
 | |||
|  | *   Объект для замораживания. | |||
|  | 
 | |||
|  | ### Возвращает
 | |||
|  | 
 | |||
|  | Замороженный объект. | |||
|  | 
 | |||
|  | ### Важная заметка
 | |||
|  | 
 | |||
|  | Попытка добавления, удаления или изменения свойств замороженного объекта приведет к сбою. Этот отказ будет либо тихим, либо брошенным `TypeError` (если включен Strict Mode). Кроме того, `Object.freeze()` является неглубокой операцией. Это означает, что вложенный объект замороженного объекта может быть изменен. | |||
|  | 
 | |||
|  | ### пример
 | |||
|  | 
 | |||
|  | ```javascript | |||
|  | // Create your object  | |||
|  |  let person = {  | |||
|  |   name: 'Johnny',  | |||
|  |   age: 23,  | |||
|  |   guild: 'Army of Darkness',  | |||
|  |   hobbies: ['music', 'gaming', 'rock climbing']  | |||
|  |  }  | |||
|  |   | |||
|  |  // Modify your object  | |||
|  |  person.name = 'John'  | |||
|  |  person.age = 24  | |||
|  |  person.hobbies.splice(1,1)  | |||
|  |  delete person.guild  | |||
|  |   | |||
|  |  // Verify your object has been modified  | |||
|  |  console.log(person) // { name: 'John', age: 24, hobbies: ['music', 'rock climbing']  | |||
|  |   | |||
|  |  // Freeze your object  | |||
|  |  Object.freeze(person)  | |||
|  |   | |||
|  |  // Verify that your object can no longer be modified  | |||
|  |  person.name = 'Johnny' // fails silently  | |||
|  |  person.age = 23 // fails silently  | |||
|  |  console.log(person) // { name: 'John', age: 24, hobbies: ['music', 'rock climbing']  | |||
|  |   | |||
|  |  // The freeze is "shallow" and nested objects (including arrays) can still be modified  | |||
|  |  person.hobbies.push('basketball')  | |||
|  |  consol.log(person.hobbies) // ['music', 'rock climbing', 'basketball']  | |||
|  | ``` | |||
|  | 
 | |||
|  | #### Дополнительная информация:
 | |||
|  | 
 | |||
|  | [Документация MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) |