Metot ekleme
Sınıfa ekleme, çıkarma ve arama metotlarını eklersin.
Sınıfa metot ekleme
İç durumu hazırladık; şimdi davranış ekleyelim. Bir metot, sınıf gövdesinde tanımlanan fonksiyondur ve this üzerinden örneğin verisine erişir.
Üç temel metot yazacağız: add bir öğeyi diziye ekler, remove ilk eşleşeni çıkarır, find bir koşula uyan ilk öğeyi döndürür. Her biri this.items üzerinde çalışır.
Metot zinciri
Bir metot this döndürürse, çağrıları ardışık bağlayabiliriz. Buna metot zinciri denir. Örneğin list.add("a").add("b") yazmak iki öğeyi peş peşe ekler.
Bunun için add ve remove sonunda return this yazmalıyız. find ise bulunan öğeyi döndürdüğü için zincirde yer almaz; sonuç olarak öğeyi verir.
Uygulama add, remove ve find metotlarını ekle
Sınıfa üç metot ekle: add(item) öğeyi diziye ekleyip this döndürsün; remove(item) ilk eşleşeni çıkarıp this döndürsün; find(callback) koşula uyan ilk öğeyi döndürsün.
Örnek çözümü göster
add metodu push ile öğeyi ekler ve this döndürür. remove, indexOf ile bulup splice ile çıkarır ve this döndürür. find, bir döngüyle callback'i her öğe için çağırır ve true döndüren ilk öğeyi verir.
Örnek çözüm:
// Yardımcı kütüphane
class Collection {
constructor() {
this.items = [];
}
add(item) {
this.items.push(item);
return this;
}
remove(item) {
const index = this.items.indexOf(item);
if (index !== -1) {
this.items.splice(index, 1);
}
return this;
}
find(callback) {
for (const item of this.items) {
if (callback(item)) {
return item;
}
}
return undefined;
}
}
Kendini test et
-
Metot zinciri (chaining) için ne gerekir?
- Metot this döndürmeli
- Metot undefined döndürmeli
- Metot static olmalı
- Metot async olmalı
Cevabı göster
Metot this döndürmeli — Doğru! this döndüren metotlar ardışık çağrılabilir.
-
add gövdesinde öğeyi ekle
this.items.____;Cevabı göster
this.items.push(item); -
Metotları göreviyle eşleştir
- add
- öğe ekler
- remove
- öğe çıkarır
- find
- ilk eşleşmeyi döndürür
- return this
- zincir kurar