اشیا (Objects)
«شیء (Object)» یک متغیر ظرف گونه است. داخلش کلی «کلید:مقدار» می نشیند. با شیء می توانیم چیزهای واقعی مثل ماشین را مدل کنیم.
ساخت شیء با لیترال
«لیترال شیء (Object Literal)» یعنی ساخت شیء با آکولاد و جفت های کلید:مقدار.
const car = { type: "Fiat", model: "500", color: "white" };
فاصله و رفتن به خط بعد مهم نیست. می توانی چندخطی بنویسی.
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
می توانی خالی بسازی و بعداً ویژگی ها را اضافه کنی.
const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
استفاده از new Object()
می شود از سازنده عمومی هم ساخت؛ اما معمولاً لیترال ساده تر است.
const person = new Object({
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
});
نکته: معمولاً شیء را با const تعریف کن. نمی توانی اشاره گرش را عوض کنی؛ اما ویژگی ها قابل تغییرند.
دسترسی به ویژگی ها
دو روش رایج داریم: «نقطه ای» و «براکتی».
person.lastName;
person["lastName"];
متدهای شیء و this
«متد (Method)» یعنی تابعی که به عنوان مقدار یک ویژگی ذخیره شده باشد.
const person = {
firstName: "John",
lastName: "Doe",
id: 5566,
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
نکته: this اینجا به خود شیء اشاره می کند.
نمایش شیء و ویژگی ها
چاپ مستقیم شیء معمولاً [object Object] می دهد. پس رشته بساز.
const person = {
name: "John",
age: 30,
city: "New York"
};
let text = person.name + "," + person.age + "," + person.city;
سازنده ها (Constructor Functions)
وقتی از یک نوع شیء زیاد می خواهیم، «تابع سازنده» کمک می کند.
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
حالا با new نمونه های متعدد می سازیم.
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
const mySister = new Person("Anna", "Rally", 18, "green");
const mySelf = new Person("Johnny", "Rally", 22, "green");
گام های عملی
- یک شیء car با سه ویژگی بساز.
- یک متد start اضافه کن و آن را اجرا کن.
- تابع سازنده Car بنویس و دو نمونه بساز.
جمع بندی سریع
- شیء ظرف کلید:مقدار است.
- لیترال ساده تر و سریع تر است.
- دسترسی نقطه ای و براکتی داریم.
- متد یعنی تابعِ درون شیء.
- سازنده برای ساخت انبوه است.