کلاس ها (Classes)
کلاس جاوااسکریپت یک «الگو (Template)» برای ساخت شیء است. مثل نقشه خانه. با نقشه چند خانه می سازی. با کلاس هم چند شیء می سازی.
سینتکس کلاس جاوااسکریپت
با کلیدواژه «class» کلاس می سازیم. سپس «constructor (سازنده)» می آید.
class ClassName {
constructor() {
// init fields
}
}
نمونه کلاس ساده
این کلاس «Car» دو ویژگی دارد: name و year.
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
استفاده از کلاس جاوااسکریپت
با «new» از روی کلاس شیء می سازیم. مثل ساخت خانه از نقشه.
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
نکته: متد «constructor» خودکار هنگام «new» اجرا می شود.
متدهای کلاس
متد یعنی «تابعِ داخل کلاس». مثل دکمه های یک وسیله.
class ClassName {
constructor() {
// init
}
method_1() {
// ...
}
method_2() {
// ...
}
}
محاسبه سن خودرو
این متد «age» اختلاف سال را برمی گرداند. مثل محاسبه سن دانش آموز.
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
// خروجی نمونه: My car is 11 years old.
const text = "My car is " + myCar.age() + " years old.";
ارسال پارامتر به متد
می توان سال فعلی را ورودی داد. انعطاف بیشتر می گیری.
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(currentYear) {
return currentYear - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new Car("Ford", 2014);
const info = "My car is " + myCar.age(year) + " years old.";
کلاس و قانون "use strict"
کلاس ها با قوانین «strict mode» هماهنگ اند. متغیر بی اعلان خطا می دهد.
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
// date = new Date(); // اشتباه در حالت strict
const date = new Date();
return date.getFullYear() - this.year;
}
}
تمرین های مرحله ای
- یک کلاس «Student» بساز و name ذخیره کن.
- متد «greet» اضافه کن و پیام برگردان.
- چند شیء بساز و خروجی ها را مقایسه کن.
نکته: کلاس شیء نیست؛ فقط الگو برای ساخت شیء است.
برای ادامه، به مرجع شی برو. سپس وراثت کلاس را یاد بگیر.
منابع بیشتر
- W3Schools: Classes — مرور سریع و مثال های ساده.
- MDN: Classes — جزئیات استاندارد و نکات پیشرفته.
جمع بندی سریع
- کلاس الگو است، شیء نیست.
- constructor هنگام «new» اجرا می شود.
- متدها رفتار شیء را می سازند.
- strict mode خطاهای پنهان را می گیرد.