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) |