Object Protection
در جاوااسکریپت برای محافظت از اشیاء (Objects) چند روش مختلف وجود داره که هرکدوم سطح متفاوتی از محدودیت ایجاد میکنن.
1️⃣ جلوگیری از افزودن پراپرتی جدید → ()Object.preventExtensions
-
نمیذاره پراپرتی جدید به شیء اضافه بشه.
-
ولی میتونی پراپرتیهای موجود رو تغییر یا حذف کنی.
2️⃣ مهر و موم کردن شیء → ()Object.seal
-
جلوی اضافه کردن و حذف کردن رو میگیره.
-
ولی تغییر مقدار پراپرتیها مجازه.
3️⃣ فریز کردن شیء → ()Object.freeze
-
کاملترین سطح حفاظت.
-
هیچ افزودن، حذف یا تغییری مجاز نیست.
4️⃣ بررسی وضعیت شیء
-
Object.isExtensible(obj)→ میشه پراپرتی جدید اضافه کرد؟ -
Object.isSealed(obj)→ شیء سیل شده؟ -
Object.isFrozen(obj)→ شیء فریز شده؟
5️⃣ کنترل پراپرتیها با Descriptor
میتونی سطح دسترسی تکتک پراپرتیها رو مشخص کنی:
📊 جدول مقایسهای
| متد / ویژگی | افزودن | حذف | تغییر مقدار | توضیح |
|---|---|---|---|---|
preventExtensions | ❌ | ✅ | ✅ | فقط نمیذاره پراپرتی جدید اضافه بشه |
seal | ❌ | ❌ | ✅ | فقط تغییر مقدار مجازه |
freeze | ❌ | ❌ | ❌ | کاملاً immutable میکنه |
defineProperty | کنترل دقیق | کنترل دقیق | کنترل دقیق | روی هر پراپرتی جدا میشه تنظیم کرد |
✨ اینا ابزارهای اصلی هستن برای محافظت از Object تو جاوااسکریپت.
HTML
Tailwind Css
Bootstrap 5
Java script
++C
Python
Three.js
Gsap
Sass
SQL
React