JavaScript Object Properties
🧩 JavaScript Object Properties
Object Property یعنی هر دادهای که داخل یک Object بهصورت کلید : مقدار (key : value) ذخیره میشود.
🔹 تعریف Property
const user = {
name: “Ali”,
age: 25,
isAdmin: false
};
در این مثال:
-
name,age,isAdmin➜ property -
مقادیر ➜ value
🔹 دسترسی به Properties
Dot Notation
Bracket Notation
user[prop];
🔹 اضافه، ویرایش و حذف Property
user.age = 26; // update
delete user.isAdmin; // delete
🔹 Computed Properties
ایجاد property با نام داینامیک:
const key = “score”;
const player = {
name: “Reza”,
[key]: 100
};
🔹 بررسی وجود Property
in operator
“name” in user; // true
hasOwnProperty
user.hasOwnProperty(“age”); // true
🔹 Property Descriptor (پیشرفته)
هر property دارای تنظیمات داخلی است:
Object.getOwnPropertyDescriptor(user, “name”);
مهمترین ویژگیها:
-
value -
writable -
enumerable -
configurable
🔹 تعریف Property با تنظیمات خاص
Object.defineProperty(user, “id”, {
value: 1,
writable: false,
enumerable: false,
configurable: false
});
نتیجه:
-
❌ قابل تغییر نیست
-
❌ در loop نمایش داده نمیشود
-
❌ قابل حذف نیست
🔹 Getter و Setter
برای کنترل خواندن و نوشتن property:
const product = {
price: 100,
get finalPrice() {
return this.price * 1.09;
},
set finalPrice(value) {
this.price = value / 1.09;
}
};
product.finalPrice; // get
product.finalPrice = 218; // set
🔹 Loop روی Properties
for (let key in user) {
console.log(key, user[key]);
}
🔹 Enumerable vs Non-enumerable
Object.keys(user); // فقط enumerable
🔹 حذف ایمن Property
user.age = undefined; // حذف واقعی نیست
delete user.age; // حذف واقعی
🧠 نکات حرفهای
✔ از delete زیاد استفاده نکن (Performance)
✔ برای دادههای حساس از defineProperty استفاده کن
✔ برای محاسبات از Getter استفاده کن
دیدگاهتان را بنویسید