CodeGym /Kurslar /Frontend SELF AZ /Obyektin metodları

Obyektin metodları

Frontend SELF AZ
Səviyyə , Dərs
Mövcuddur

7.1 Obyekt metodlarının yaradılması

JavaScript-də obyektin metodları funksiyalardır, hansı ki obyektlərlə əlaqələndirilir və bu obyektlər üzərində əməliyyatlar yerinə yetirə bilər. Metodlar obyektlərin öz davranışlarına malik olmasına imkan verir və bu da onları obyekt-oriyentasiya proqramlaşdırmasının vacib hissəsinə çevirir. Aşağıda obyektin metodlarının yaradılması və istifadəsini müzakirə edəcəyik.

Obyekt metodları bir neçə üsulla yaradıla bilər. Əsas üsullara nəzər yetirək.

1. Obyekt literalı

Metodları birbaşa obyekt literalında funksiyalardan istifadə edərək yarada bilərsiniz.

Bu nümunədə person obyekti greet() metoduna malikdir, bu metod obyektin name mülkiyyətindən istifadə edərək bir sətir geri qaytarır:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet: function() {
          return `Salam, mənim adım ${this.name}`;
        }
      };

      console.log(person.greet()); // Çap edəcək: Salam, mənim adım John
    
  

2. Metodların qısa yazılışı

ES6-dan etibarən obyekt metodlarının yaradılması üçün qısa yazılış tətbiq olundu.

Bu yazılış kodu daha qısa və oxunaqlı edir:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet() {
          return `Salam, mənim adım ${this.name}`;
        }
      };

      console.log(person.greet()); // Çap edəcək: Salam, mənim adım John
    
  

3. Obyekt yaradıldıqdan sonra metodların əlavə edilməsi

Metodları obyekt yaradıldıqdan sonra əlavə etmək mümkündür.

Bu nümunədə greet() metodu person obyektinə yaradıldıqdan sonra əlavə olunur:

JavaScript
    
      let person = {
        name: 'John',
        age: 30
      };

      person.greet = function() {
        return `Salam, mənim adım ${this.name}`;
      };

      console.log(person.greet()); // Çap edəcək: Salam, mənim adım John
    
  

4. Konstruktor-funksiyadan istifadə

Konstruktor-funksiyası bütün obyekt nümunələri üçün metodların yaradılmasına imkan verir.

Bu nümunədə greet() metodu Person() konstruktor-funksiyasından istifadə edilərək yaradılmış hər bir obyekt nümunəsi üçün yaradılır:

JavaScript
    
      function Person(name, age) {
        this.name = name;
        this.age = age;
        this.greet = function() {
          return `Salam, mənim adım ${this.name}`;
        };
      }

      let john = new Person('John', 30);
      let jane = new Person('Jane', 25);

      console.log(john.greet()); // Çap edəcək: Salam, mənim adım John
      console.log(jane.greet()); // Çap edəcək: Salam, mənim adım Jane
    
  

7.2 Obyekt metodlarının istifadəsi

1. Nöqtə vasitəsilə metodlara giriş

Obyekt metodlarını nöqtə sintaksisi ilə çağırmaq olar:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet() {
          return `Salam, mənim adım ${this.name}`;
        }
      };

      console.log(person.greet()); // Çap edəcək: Salam, mənim adım John
    
  

2. Kvadrat mötərizələr vasitəsilə metodlara giriş

Obyekt metodlarını həmçinin kvadrat mötərizələr vasitəsilə çağırmaq olar:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet() {
          return `Salam, mənim adım ${this.name}`;
        }
      };

      let result = person['greet']();
      console.log(result); // Çap edəcək: Salam, mənim adım John
    
  

3. Bir metodun başqa bir metodu çağırması

Obyekt metodları həmin obyektin digər metodlarını çağıra bilər.

Bu misalda sum()mul() metodları setValues() metodu ilə təyin edilmiş dəyərləri istifadə edir:

JavaScript
    
      let calculator = {
        a: 0,
        b: 0,
        setValues(a, b) {
          this.a = a;
          this.b = b;
        },
        sum() {
          return this.a + this.b;
        },
        mul() {
          return this.a * this.b;
        }
      };

      calculator.setValues(2, 3);

      console.log(calculator.sum()); // Çap edəcək: 5
      console.log(calculator.mul()); // Çap edəcək: 6
    
  

4. Metodlarda this istifadəsi

Metodlarda this açar sözü obyektin özünü göstərir və onun xassələrinə və digər metodlarına müraciət etməyə imkan verir:

JavaScript
    
      let car = {
        brand: 'Toyota',
        model: 'Camry',
        getInfo() {
          return `Marka: ${this.brand}, Model: ${this.model}`;
        }
      };

      console.log(car.getInfo()); // Çap edəcək: Marka: Toyota, Model: Camry
    
  

5. Metodları callback kimi ötürmək

Obyekt metodları callback olaraq ötürülərkən this-in dəyərini nəzərə almaq vacibdir:

JavaScript
    
      let person = {
        name: 'John',
        age: 30,
        greet() {
          console.log(`Salam, mənim adım ${this.name}`);
        }
      };

      setTimeout( person.greet, 1000 ); // Çap edəcək: Salam, mənim adım undefined
    
  

Bu misalda greet() metodu setTimeout()-a callback kimi ötürüldüyü zaman this-in dəyəri itir. Nəticədə greet() daxilindəki this qlobal window obyektinə işarə edir. Brauzerlərdə window obyektində name xassəsi mövcuddur və bu, standart olaraq boş sətirdir "". Buna görə də "Salam, mənim adım" çap olunur. this-in düzgün dəyərini saxlamaq üçün bind() metodu istifadə edilə bilər, hansı ki funksiyanı müəyyən bir kontekstə bağlayır:

JavaScript
    
      setTimeout(person.greet.bind(person), 1000); // Çap edəcək: Salam, mənim adım John
    
  

Və ya ox funksiyasından istifadə etmək:

JavaScript
    
      setTimeout(() => person.greet(), 1000); // Çap edəcək: Salam, mənim adım John
    
  

7.3 Metodların birlikdə istifadəsi

1. Prototiplər vasitəsilə metodların miras alınması

Metodları obyektlərin prototiplərinə əlavə etmək mümkündür ki, onlar bütün nümunələr üçün əlçatan olsun:

JavaScript
    
      function Person(name, age) {
        this.name = name;
        this.age = age;
      }

      Person.prototype.greet = function() {
        return `Salam, mənim adım ${this.name}`;
      };

      let john = new Person('John', 30);
      let jane = new Person('Jane', 25);

      console.log(john.greet()); // Çıxacaq: Salam, mənim adım John
      console.log(jane.greet()); // Çıxacaq: Salam, mənim adım Jane
    
  

2. Digər obyektlərin metodlarından istifadə

Bir obyektin metodları başqa bir obyekt üçün call() və ya apply() metodlarından istifadə edilərək çağırıla bilər:

JavaScript
    
      let person1 = {
        name: 'John',
        age: 30,
        greet() {
          return `Salam, mənim adım ${this.name}`;
        }
      };

      let person2 = {
        name: 'Jane',
        age: 25
      };

      console.log(person1.greet.call(person2)); // Çıxacaq: Salam, mənim adım Jane
    
  
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION