Doğrulama ve Yan Etkiler
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 45 / 56.
Getter'lar ve setter'lar özellikleri yalnızca okuyup yazmaktan daha fazlasını yapabilir; girdileri doğrulayabilir ve değerler değiştiğinde yan etkileri tetikleyebilir.
Doğrulama içeren bir User sınıfı oluşturalım:
class User {
constructor(name, age) {
this._name = name;
this._age = age;
}
get age() {
return this._age;
}
set age(value) {
// Yaşın bir sayı olduğunu ve makul bir aralıkta olduğunu doğrula
if (typeof value !== 'number') {
throw new Error('Age must be a number');
}
if (value < 0 || value > 120) {
throw new Error('Age must be between 0 and 120');
}
this._age = value;
// Yan etki: yaş değiştiğinde logla
console.log(`Age updated to ${value}`);
}
}Şimdi setter'ı kullandığımızda doğrulama otomatik olarak gerçekleşir:
const user = new User('Alice', 25);
// Bu çalışır
user.age = 30; // Loglar: "Age updated to 30"
// Bu bir hata fırlatır
user.age = -5; // Hata: Age 0 ile 120 arasında olmalıdır
// Bu da bir hata fırlatır
user.age = "thirty"; // Hata: Age bir sayı olmalıdırDoğrulama = Bir değeri depolamadan önce geçerli olup olmadığını kontrol etme
Yan Etkiler = Bir özellik değiştiğinde gerçekleşen ek eylemler
Görev
Temel bir setter'a sahip BankAccount sınıfı veriliyor. Görevin balance setter'ını tamamlamak.
Setter'a şunları ekle:
- Doğrulama:
valuedeğerinin bir sayı olup olmadığını VEYA 0'dan küçük olup olmadığını kontrol et; durum böyleyseconsole.log("Invalid balance")kullan ve setter'dan çıkmak içinreturnkullan - Yan Etki: Geçerli bir değeri kaydettikten sonra
console.log(\`Balance updated to $${value}\`)
Kendin dene
import { BankAccount } from './account.js';
// Test durumları
const account = new BankAccount("Savings");
// Test 1: Valid balance
account.balance = 100;
console.log(account.balance);
// Test 2: Invalid balance (negative)
account.balance = -50;
console.log(account.balance);
// Test 3: Invalid balance (not a number)
account.balance = "abc";
console.log(account.balance);
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
1Nesneler ve this Anahtar Kelimesi
Hızlı Tekrar: NesnelerNesnelere Metot Eklemethis Anahtar Kelimesini AnlamakYapıcı Fonksiyonlarnew Anahtar KelimesiGenel Tekrar Uygulaması7Kalıtım ve extends Anahtar Kelimesi
Kalıtım"is-a" İlişkisiextends Anahtar Kelimesisuper() MetoduÖzellikleri ve Metotları DevralmaÖzet Meydan Okuması2Kodu Düzenleme
Modüller Nedir?export ile Dışa Aktarmaimport ile İçe AktarmaVarsayılan ve Adlandırılmış Dışa Aktarmalar8OOP Kodunu Düzenleme
Sınıfları Modüller Halinde Düzenleme6Proje: Basit Bir Banka Hesabı
BankAccount SınıfıPara Yatırma ve Para ÇekmePrivate Alan Olarak Bakiye9Statik Metotlar ve Özellikler
Sınıf Düzeyi ve Örnek DüzeyiStatik ÖzelliklerStatik Yardımcı MetotlarÖzet Meydan Okuma12Getter ve Setter'lar
get ve set Anahtar KelimeleriHesaplanmış ÖzelliklerDoğrulama ve Yan EtkilerÖzet Meydan Okuması15Final Meydan Okumaları
Oyun Karakteri OluşturucuE-ticaret Ürün SistemiÜniversite Yönetim SistemiAkıllı Ev Cihaz SistemiKendi başına pratik yap: Online JavaScript derleyicisi