Hesaplanmış Özellikler
Coddy'nin JavaScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 44 / 56.
Hesaplanmış özellikler (computed properties), sadece saklanan veriyi döndürmek yerine bir değeri hesaplayan ve döndüren getter'lardır. Normal özellikler gibi görünürler ancak değerlerini anında hesaplarlar.
Örneğe bir göz atalım. Normal bir özelliğe sahip bir nesnemiz var:
const circle = {
radius: 5
};Şimdi bir getter kullanarak hesaplanmış bir özellik ekliyoruz:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};Hesaplanmış özelliğe şu şekilde erişiriz:
console.log(circle.diameter); // Çıktı: 10Yarıçapı güncellersek, çap da otomatik olarak güncellenir:
circle.radius = 10;
console.log(circle.diameter); // Çıktı: 20Hesaplanmış özellikler (computed properties), bir özelliğin değeri diğer özelliklere bağlı olduğunda veya hesaplama gerektirdiğinde kullanışlıdır.
Görev
Size width ve height özelliklerine sahip bir Rectangle sınıfı verildi. Göreviniz area ve perimeter için hesaplanmış özellikler (computed properties) eklemektir.
- Hesaplanmış özellik
<strong>area</strong>-width×heightdeğerini döndürür - Hesaplanmış özellik
<strong>perimeter</strong>- 2 × (width+height) değerini döndürür
Kopya kağıdı
Hesaplanmış özellikler (computed properties), yalnızca saklanan verileri döndürmek yerine bir değeri hesaplayan ve döndüren alıcılardır (getters). Değerlerini anında hesaplarlar.
get anahtar kelimesini kullanarak bir hesaplanmış özellik tanımlayın:
const circle = {
radius: 5,
get diameter() {
return this.radius * 2;
}
};Hesaplanmış özelliklere normal özellikler gibi (parantez olmadan) erişin:
console.log(circle.diameter); // Çıktı: 10Hesaplanmış özellikler, bağımlı oldukları özellikler değiştiğinde otomatik olarak güncellenir:
circle.radius = 10;
console.log(circle.diameter); // Çıktı: 20Kendin dene
import { Rectangle } from './rectangle.js';
// Test kodu - değiştirmeyin
const rect = new Rectangle(5, 10);
console.log(`Area: ${rect.area}`); // "Area: 50" çıktısını vermeli
console.log(`Perimeter: ${rect.perimeter}`); // "Perimeter: 30" çıktısını vermeliBu 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 Çekme9Statik 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 Sistemi