Sobes.tech
Junior

Çağırış zəncirində metodu necə çağırmaq olar?

sobes.tech Süni İntellekt

AI-dan cavab

Obyektin metod çağırışları və ya xassələri arasında nöqtə (.) istifadə edin. Hər metod çağırışı və ya xassəyə giriş, sonra növbəti metod çağırışını və ya xassəyə giriş üçün obyekt qaytarır.

// Metodların zənciri nümunəsi
" abc ".trim().toUpperCase().split(" ");

/*  
   1. " abc ".trim()  -> "abc"  
   2. "abc".toUpperCase() -> "ABC"  
   3. "ABC".split(" ") -> ["ABC"]  
*/

// Xassəyə giriş ilə zəncir nümunəsi
const user = {
  address: {
    city: "Moskva"
  }
};

user.address.city; // "Moskva"

// Optional chaining (?.) istifadə nümunəsi
// Bu, iç-içə obyektlərin xassələrinə təhlükəsiz giriş imkanı verir,
// və orta xassələr null və ya undefined olsa, səhvlərin qarşısını alır.
user.address?.street; // undefined, səhv olmadan

const anotherUser = {};
anotherUser.address?.city; // undefined, səhv olmadan

Öz metodlarınızı zəncirə dəstək olmaq üçün dizayn edərkən, hər metod this-i (mövcud obyektə istinad) qaytarmalıdır, zəncirin sonuncu metodundan başqa, bu qayda keçərlidir.

class Builder {
  constructor() {
    this.value = "";
  }

  addText(text) {
    this.value += text;
    return this; // this qaytarır
  }

  addNumber(number) {
    this.value += number;
    return this; // this qaytarır
  }

  build() {
    return this.value; // nəticəni qaytarır
  }
}

const result = new Builder().addText("Hello").addNumber(123).build();
console.log(result); // "Hello123"