ویژگی های شی (Object Properties)
«ویژگی شی (Object Property)» مثل برچسب روی جعبه است. هر شیء چند ویژگی دارد و هر ویژگی یک مقدار دارد. می توانیم ویژگی ها را بخوانیم، اضافه کنیم، و حتی حذف کنیم.
دسترسی به ویژگی ها
دو روش رایج داریم: نقطه ای و براکتی. روش براکتی برای نام های پویا عالی است.
let age = person.age;
let age = person["age"];
let key = "age";
let age = person[key];
افزودن ویژگی جدید
برای افزودن، کافی است مقدار بدهی. جاوااسکریپت خودش می سازد.
person.nationality = "English";
مقدار پیش فرض در سازنده
در «سازنده (Constructor)» می توانیم ویژگی پیش فرض بدهیم. همه نمونه ها آن را خواهند داشت.
function Person(first, last, age, eyeColor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyeColor;
this.nationality = "English";
}
حذف ویژگی ها
با delete ویژگی و مقدارش حذف می شود. بعداً می توانی دوباره اضافه کنی.
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
نکته: بعد از حذف، دسترسی به آن ویژگی خطا نمی دهد؛ اما undefined می شود.
ویژگی های تو در تو
مقدار یک ویژگی می تواند شیء دیگری باشد. سپس زنجیره ای دسترسی می گیریم.
const myObj = {
name: "John",
age: 30,
myCars: {
car1: "Ford",
car2: "BMW",
car3: "Fiat"
}
};
let brand = myObj.myCars.car2;
let brand = myObj["myCars"]["car2"];
let p1 = "myCars";
let p2 = "car2";
let brand = myObj[p1][p2];
گام های عملی
- یک شیء student بساز و age بده.
- ویژگی grade را بعداً اضافه کن.
- age را حذف کن و نتیجه را بررسی کن.
جمع بندی سریع
- نقطه ای ساده است؛ براکتی پویا است.
- افزودن با انتساب ساده انجام می شود.
- delete ویژگی را کامل حذف می کند.
- ویژگی ها می توانند شیء باشند.
- سازنده ها مقدار پیش فرض می دهند.