Menu
Coddy logo textTech

Metot zincirleme deseni

Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 16 / 56.

Metot zincirleme, aynı nesne üzerinde tek bir ifadede birden fazla metodu çağırmanıza olanak tanıyan bir programlama desenidir. Her metot nesnenin kendisini (this) döndürür, bu da aynı satırda bir sonraki metodu çağırmanıza olanak sağlar.

Basit bir sayaç nesnesi oluşturun:

const counter = {
  count: 0,
  
  increment() {
    this.count++;
    return this;
  },
  
  decrement() {
    this.count--;
    return this;
  },
  
  getValue() {
    return this.count;
  }
};

Artık metotları birbirine zincirleyebilirsiniz:

// Birden fazla işlemi zincirleme
counter.increment().increment().decrement();

// Sayaç şu anda 1
console.log(counter.getValue()); // Çıktı: 1

Metot zincirlemenin anahtarı, zincirlenebilir olmasını istediğiniz her metottan this döndürmektir.

challenge icon

Görev

Size halihazırda add() ve subtract() metotlarına sahip bir calculator nesnesi verilmiştir. Göreviniz, zincirlemeyi (chaining) etkinleştirmek için this döndüren multiply ve divide metotlarını eklemektir.

Kopya kağıdı

Metot zincirleme (method chaining), aynı nesne üzerinde tek bir ifade içinde birden fazla metot çağırmanıza olanak tanır. Her metot nesnenin kendisini (this) döndürür, bu da bir sonraki metodun aynı satırda çağrılabilmesini sağlar.

Metot zincirlemeyi etkinleştirmek için her metottan this değerini döndürün:

const counter = {
  count: 0,
  
  increment() {
    this.count++;
    return this;
  },
  
  decrement() {
    this.count--;
    return this;
  },
  
  getValue() {
    return this.count;
  }
};

Birden fazla metodu birbirine zincirleyin:

counter.increment().increment().decrement();
console.log(counter.getValue()); // Output: 1

Kendin dene

import { calculator } from './calculator.js';

// Test kodu - değiştirmeyin
const result1 = calculator.add(10).multiply(2).getValue();
console.log(result1); // Çıktı 20 olmalı

// İkinci test için sıfırla
calculator.value = 0;
const result2 = calculator.add(20).divide(4).subtract(1).getValue();
console.log(result2); // Çıktı 4 olmalı
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler