Sobes.tech
Junior

Çağrı zincirinde bir metoda nasıl ulaşılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir nesne içindeki metod çağrılarını veya özellikleri arasında nokta (.) kullanın. Her metod çağrısı veya özellik erişimi, ardından gelen metod çağrısı veya özellik erişimi yapabileceğiniz bir nesne döndürür.

// Metod zinciri örneği
" abc ".trim().toUpperCase().split(" ");

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

// Özellik erişimi ile zincir örneği
const user = {
  address: {
    city: "Moskova"
  }
};

user.address.city; // "Moskova"

// Opsiyonel zincirleme kullanımı (?.)
// Derin nesne özelliklerine güvenli erişim sağlar,
// ara özellikler null veya undefined ise hatayı önler.
user.address?.street; // undefined, hata yok

const anotherUser = {};
anotherUser.address?.city; // undefined, hata yok

Zincirleme destekleyen kendi metodlarınızı tasarlarken, her metod this döndürmelidir (mevcut nesneye referans). Zincirin son metod hariç, bu kural geçerlidir.

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

  addText(text) {
    this.value += text;
    return this; // this döndürür
  }

  addNumber(number) {
    this.value += number;
    return this; // this döndürür
  }

  build() {
    return this.value; // Son sonucu döndürür
  }
}

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