66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Object Freeze
							 | 
						||
| 
								 | 
							
								localeTitle: تجميد الكائن
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								## تجميد الكائن
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								الأسلوب `Object.freeze()` بتجميد كائن. سوف _يمنعك_ كائن مجمّد من:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   إضافة خصائص جديدة إليه
							 | 
						||
| 
								 | 
							
								*   إزالة المساهمات الموجودة منه
							 | 
						||
| 
								 | 
							
								*   تغيير التعداد أو قابلية التهيئة أو قابلية خصائصه الحالية
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### بناء الجملة
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 `Object.freeze(obj) 
							 | 
						||
| 
								 | 
							
								` 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### المعلمات
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`obj`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   الهدف من التجميد.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### عائدات
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								الكائن المجمدة.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### ملاحظة مهمة
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ستؤدي محاولة إضافة أو إزالة أو تعديل خصائص كائن مجمّد إلى فشل. هذا الفشل إما أن يكون صامتًا أو يرمي `TypeError` (إذا تم تمكين وضع Strict). بالإضافة إلى ذلك ، `Object.freeze()` هي عملية ضحلة. هذا يعني أن الكائن المتداخل ، الكائن المجمّد ، قابل للتعديل.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### مثال
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 `// 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)
							 |