5.1 Sinif elan etmək
ECMAScript 6 (ES6) JavaScript-ə gətiriləndən sonra obyektlər yaratmaq və miras almağı idarə etmək üçün yeni bir struktur ortaya çıxdı — class
açar sözü. Siniflər obyektlərin yaradılması və prototiplərlə işləmək üçün daha rahat və anlaşılan sintaksis təqdim edir.
JavaScript-də Siniflər — mövcud prototip miras sisteminin üzərindəki sintaksis şəkəridir. Onlar obyektlərin yaradılmasını və idarə edilməsini daha anlaşıqlı və strukturlaşdırılmış edir.
Sinif elan etmək
JavaScript-də sinif class
açar sözü ilə elan olunur və sinifin adı sonrasında yazılır. Sinifin gövdəsi isə {}
fiqurlu mötərizələr arasında olur.
Nümunə:
class Person {
// Sinif metodu
greet() {
console.log('Salam!');
}
}
// Sinif nümunəsi yaratmaq
const person = new Person();
person.greet(); // Çap edəcək: Salam!
Sinif ifadəsi
Siniflər həm elan, həm də ifadə vasitəsilə yaradılır. Sinif ifadələri adlandırılmış və ya anonim ola bilər.
Adlandırılmış sinif nümunəsi:
const Person = class PersonClass {
greet() {
console.log('Salam!');
}
};
const person = new Person();
person.greet(); // Çap edəcək: Salam!
Anonim sinif nümunəsi:
const Person = class {
greet() {
console.log('Salam!');
}
};
const person = new Person();
person.greet(); // Çap edəcək: Salam!
5.2 Siniflərin sahələri və metodları
Siniflərin xüsusiyyətləri
ES6-dakı siniflərin xüsusiyyətləri yalnız constructor daxilində elan edilə bilər. Lakin daha yeni JavaScript (ES2022) versiyalarında sinif sahələri təqdim edilmişdir ki, bu da xüsusiyyətləri constructor-dan kənarda elan etməyə imkan verir.
Constructor daxilində xüsusiyyətlərdən istifadə nümunəsi:
class User {
constructor(username, email) {
this.username = username;
this.email = email;
}
}
const user = new User('john_doe', 'john@example.com');
console.log(user.username); // "john_doe"
console.log(user.email); // "john@example.com"
Sinif sahələrindən istifadə nümunəsi (ES2022):
class User {
username = 'default_username';
email = 'default@example.com';
constructor(username, email) {
this.username = username;
this.email = email;
}
}
const user = new User('john_doe', 'john@example.com');
console.log(user.username); // "john_doe"
console.log(user.email); // "john@example.com"
İzahedici:
- Birinci nümunədə
username
vəemail
xüsusiyyətləri constructor daxilində elan edilir və təşəbbüsləşdirilir. - İkinci nümunədə
username
vəemail
xüsusiyyətləri sinif sahələri kimi constructor-dan kənarda elan edilir.
Sinif metodları
Sinif, sinif daxilində müəyyən edilən metodları ehtiva edə bilər. Bu metodlar avtomatik olaraq yaradılmış obyektlərin prototipinə əlavə olunur.
Sinif metodları nümunəsi:
class Animal {
speak() {
console.log('Animal danışır');
}
eat() {
console.log('Animal yeyir');
}
}
const animal = new Animal();
animal.speak(); // Çap edir: Animal danışır
animal.eat(); // Çap edir: Animal yeyir
3.3 Siniflərin istifadəsinə nümunələr
Mürəkkəb obyektlərin yaradılması
Siniflər müxtəlif metodlar və xüsusiyyətlərlə mürəkkəb obyektlər yaratmağa imkan verir.
Nümunə:
class Car {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
startEngine() {
console.log(`${this.brand} ${this.model} mühərrik işə düşdü.`);
}
stopEngine() {
console.log(`${this.brand} ${this.model} mühərrik dayandı.`);
}
}
const myCar = new Car('Toyota', 'Camry');
myCar.startEngine(); // Çıxış: Toyota Camry mühərrik işə düşdü.
myCar.stopEngine(); // Çıxış: Toyota Camry mühərrik dayandı.
GO TO FULL VERSION