CodeGym /Kurslar /Frontend SELF AZ /Statik metodlar

Statik metodlar

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

8.1 Statik metodların elan edilməsi

JavaScript-də statik metodlar — bu, birbaşa sinifdə müəyyən olunan metodlardır, obyektlərin nümunələrində deyil. Onlar birbaşa sinifdə çağırılır, həmin sinif tərəfindən yaradılan obyektlərdə deyil. Statik metodlar tez-tez sinifə aid olan, amma konkret obyektlərə aid olmayan yardımçı funksiyalar yaratmaq üçün istifadə olunur.

Statik metodlar sinifin daxilində metodu müəyyən etməzdən əvvəl static açar sözündən istifadə edilərək elan edilir.

Nümunə:

  • addmultiply metodları static açar sözündən istifadə edərək statik kimi elan edilmişdir
  • Bu metodlar MathHelper sinifində birbaşa çağırılır, onun nümunələrində deyil
JavaScript
    
      class MathHelper {
        static add(a, b) {
          return a + b;
        }

        static multiply(a, b) {
          return a * b;
        }
      }

      console.log(MathHelper.add(5, 3)); // 8
      console.log(MathHelper.multiply(5, 3)); // 15
    
  

8.2 Statik metodlardan istifadə

Statik metodlar aşağıdakı hallarda faydalıdır:

  1. Köməkçi funksiyalar: statik metodlar, siniflə əlaqəli əməliyyatları yerinə yetirən utilitar funksiyalar yaratmaq üçün istifadə edilə bilər.
  2. Fabrik metodlar: statik metodlar müəyyən məntiq ilə sinif nümunələri yaratmaq üçün istifadə edilə bilər.
  3. Məlumatların işlənməsi: statik metodlar siniflə əlaqəli, lakin sinif nümunələrinin yaradılmasını tələb etməyən məlumatların işlənməsi üçün istifadə edilə bilər.

Köməkçi funksiyalara nümunə:

  • StringUtil sinfi capitalizereverse kimi statik metodlar daxildir, hansı ki, sətirlərlə işləyir
  • Bu metodlar birbaşa StringUtil sinfi üzərində çağırılır
JavaScript
    
      class StringUtil {
        static capitalize(str) {
          return str.charAt(0).toUpperCase() + str.slice(1);
        }

        static reverse(str) {
          return str.split('').reverse().join('');
        }
      }

      console.log(StringUtil.capitalize('hello')); // "Hello"
      console.log(StringUtil.reverse('hello')); // "olleh"
    
  

Fabrik metodu nümunəsi:

Statik metod fromObject məlumat obyekti əsasında Car sinfinin nümunəsini yaradır.

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
        }

        static fromObject(obj) {
          return new Car(obj.brand, obj.model);
        }
      }

      const carData = { brand: 'Toyota', model: 'Camry' };
      const car = Car.fromObject(carData);

      console.log(car.brand); // "Toyota"
      console.log(car.model); // "Camry"
    
  

8.3 Statik metodlar və irsiyyət

JavaScript-də statik metodlar törəmə siniflər tərəfindən də irsən alınır. Törəmə siniflər baz sinifin statik metodlarından istifadə edə bilər və ya onları yenidən təyin edə bilər.

Statik metodların irsiyyətinə nümunə:

  • identify statik metodu Animal sinfində təyin olunub və Dog sinfində yenidən təyin olunub
  • Hər iki sinifdə identify metodu çağırılır
JavaScript
    
      class Animal {
        static identify() {
          return 'Bu bir heyvandır';
        }
      }

      class Dog extends Animal {
        static identify() {
          return 'Bu bir itdir';
        }
      }

      console.log(Animal.identify()); // "Bu bir heyvandır"
      console.log(Dog.identify()); // "Bu bir itdir"
    
  

8.4 Statik metodlara digər metodlardan giriş

Statik metodlara sinifin adından istifadə etməklə digər metodlar daxilində müraciət etmək mümkündür.

Nümunə:

Statik metod calculateArea digər statik metod describeCircle daxilində this açar sözündən istifadə olunaraq çağrılır, hansı ki, bu kontekstdə Geometry sinifinə istinad edir.

JavaScript
    
      class Geometry {
        static calculateArea(radius) {
          return Math.PI * radius * radius;
        }

        static describeCircle(radius) {
          const area = this.calculateArea(radius);
          return `Radiusu ${radius} olan dairənin sahəsi ${area.toFixed(2)}-dir.`;
        }
      }

      console.log(Geometry.describeCircle(5)); // "Radiusu 5 olan dairənin sahəsi 78.54-dir."
    
  

8.5 Statik metodlar və class instance-lar

Statik metodlar class instance-larında çağırıla bilməz. Statik metodu bir instance-da çağırmağa cəhd etmək səhv ilə nəticələnəcək.

Nümunə:

Statik add metodu Calculator class-ında çağırılır, onun instance-ı calc üzərində deyil.

JavaScript
    
      class Calculator {
        static add(a, b) {
          return a + b;
        }
      }

      const calc = new Calculator();
      console.log(Calculator.add(3, 4)); // 7

      console.log(calc.add(3, 4)); // Səhv: calc.add bir funksiya deyil
    
  
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION