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 ve setter'lar, özellikleri yalnızca okuyup yazmaktan 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 bulunduğ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 bunu günlüğe kaydet
console.log(`Age updated to ${value}`);
}
}Şimdi ayarlayıcıyı kullandığımızda doğrulama otomatik olarak gerçekleşir:
const user = new User('Alice', 25);
// Bu çalışır
user.age = 30; // Günlüğe yazar: "Age updated to 30"
// Bu bir hata oluşturur
user.age = -5; // Hata: Age, 0 ile 120 arasında olmalıdır
// Bu da bir hata oluşturur
user.age = "thirty"; // Hata: Age bir sayı olmalıdırDoğrulama = Bir değeri saklamadan önce geçerli olup olmadığını kontrol etme
Yan Etkiler = Bir özellik değiştiğinde gerçekleşen ek işlemler
Görev
Temel bir ayarlayıcıya sahip bir BankAccount sınıfı veriliyor. Görevin balance ayarlayıcısını tamamlamak.
Ayarlayıcıya şunları ekle:
- Doğrulama:
valuebir sayı değilse VEYA 0'dan küçükseconsole.log("Invalid balance")kullan ve ayarlayıcı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: Geçerli bakiye
account.balance = 100;
console.log(account.balance);
// Test 2: Invalid balance (negatif)
account.balance = -50;
console.log(account.balance);
// Test 3: Invalid balance (sayı değil)
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