6.1 Obyektlərin yaradılması
Obyektlər JavaScript-də ən əsas məlumat tiplərindən biridir və məlumatların saxlanılması və idarə edilməsi üçün geniş istifadə olunur. Obyekt — bu, xassələr toplusudur, burada hər bir xassə açardan (adından) və dəyərdən ibarətdir. Bu mühazirədə biz obyektlərin yaradılmasını, eləcə də onların xassələrinə və metodlarına çıxışı nəzərdən keçirəcəyik.
1. Obyekt literalı
JavaScript-də obyekt yaratmağın ən geniş yayılmış üsulu obyekt literalından istifadə etməkdir.
Bu nümunədə biz dörd xassəli person obyektini yaratdıq: name, age, isStudent və greet.
let person = {
name: 'John',
age: 30,
isStudent: false,
greet: function() {
return 'Salam!';
}
};
2. Object konstruktoru
Obyektlər həmçinin Object() konstruktordan istifadə olunaraq yaradıla bilər.
Bu üsul obyekt literalından istifadə edərək obyekt yaradılmasına ekvivalentdir, lakin daha çox söz tələb edir:
let person = new Object();
person.name = 'John';
person.age = 30;
person.isStudent = false;
person.greet = function() {
return 'Salam!';
};
3. Funksiya-konstruktor
Funksiya-konstruktor eyni xassələrə və metodlara malik bir neçə obyekt nümunəsi yaratmağa imkan verir.
Bu nümunədə Person() funksiya-konstruktordan john və jane obyektlərini yaratmaq üçün istifadə olunur:
function Person(name, age, isStudent) {
this.name = name;
this.age = age;
this.isStudent = isStudent;
this.greet = function() {
return 'Salam!';
};
}
let john = new Person('John', 30, false);
let jane = new Person('Jane', 25, true);
4. Object.create() metodu
Object.create() metodu verilmiş prototipə və xassələrə əsaslanan yeni bir obyekt yaradır.
Bu nümunədə john obyekti personPrototype prototipinə əsasən yaradılır:
let personPrototype = {
greet: function() {
return 'Salam!';
}
};
let john = Object.create(personPrototype);
john.name = 'John';
john.age = 30;
john.isStudent = false;
6.2 Xassələrə və metodlara çıxış
1. Nöqtə ilə çıxış
Obyektin xassələrinə və metodlarına çıxış əldə etməyin ən yayılmış yolu — nöqtədən istifadə etməkdir:
let person = {
name: 'John',
age: 30,
greet: function() {
return 'Salam!';
}
};
console.log(person.name); // Nəticə: John
console.log(person.age); // Nəticə: 30
console.log(person.greet()); // Nəticə: Salam!
2. Kvadrat mötərizələr ilə çıxış
Obyektin xassələrinə kvadrat mötərizələr vasitəsilə də çıxış əldə etmək mümkündür. Bu üsul xassənin adı dəyişəndə saxlanıldığı və ya boşluqlar və ya xüsusi simvollar ehtiva etdiyi hallarda faydalıdır:
let person = {
'first name': 'John',
age: 30,
greet: function() {
return 'Salam!';
}
};
console.log(person['first name']); // Nəticə: John
console.log(person['age']); // Nəticə: 30
let propertyName = 'greet';
console.log(person[propertyName]()); // Nəticə: Salam!
3. Xassələrin dəyişdirilməsi və əlavə edilməsi
Obyektin xassələri istənilən vaxt dəyişdirilə və ya əlavə edilə bilər:
let person = {
name: 'John',
age: 30
};
// Mövcud xassənin dəyişdirilməsi
person.age = 31;
console.log(person.age); // Nəticə: 31
// Yeni xassənin əlavə edilməsi
person.isStudent = false;
console.log(person.isStudent); // Nəticə: false
4. Xassələrin silinməsi
Obyektin xassələri delete operatoru ilə silinə bilər:
let person = {
name: 'John',
age: 30,
isStudent: false
};
delete person.isStudent;
console.log(person.isStudent); // Nəticə: undefined
6.3 Obyektin xüsusiyyətləri üzrə iterasiya
1. for...in dövrü
for...in dövrü obyektin bütün siyahıya alına bilən xüsusiyyətlərini keçməyə imkan verir:
let person = {
name: 'John',
age: 30,
isStudent: false
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
// Çap edəcək:
// name: John
// age: 30
// isStudent: false
2. Object.keys() metodu
Object.keys() metodu obyektin bütün siyahıya alına bilən xüsusiyyətlərinin massivini qaytarır:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let keys = Object.keys(person);
console.log(keys); // Çap edəcək: ['name', 'age', 'isStudent']
3. Object.values() metodu
Object.values() metodu obyektin bütün siyahıya alına bilən xüsusiyyətlərinin dəyərlərinin massivini qaytarır:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let values = Object.values(person);
console.log(values); // Çap edəcək: ['John', 30, false]
4. Object.entries() metodu
Object.entries() metodu obyektin bütün siyahıya alına bilən xüsusiyyətləri üçün [açar, dəyər] cütlərini qaytaran bir massiv qaytarır:
let person = {
name: 'John',
age: 30,
isStudent: false
};
let entries = Object.entries(person);
console.log(entries); // Çap edəcək: [['name', 'John'], ['age', 30], ['isStudent', false]]
6.4 Xassələrin mövcudluğunu yoxlamaq
1. in operatoru
in operatoru obyekt içində xassənin mövcudluğunu yoxlamağa imkan verir:
let person = {
name: 'John',
age: 30
};
console.log('name' in person); // Çap edəcək: true
console.log('isStudent' in person); // Çap edəcək: false
2. hasOwnProperty() metodu
hasOwnProperty() metodu obyektin müəyyən xassəyə malik olub-olmadığını yoxlayır (irsi olmayan xassələr üçün):
let person = {
name: 'John',
age: 30
};
console.log(person.hasOwnProperty('name')); // Çap edəcək: true
console.log(person.hasOwnProperty('isStudent')); // Çap edəcək: false
GO TO FULL VERSION