CodeBlanks Logo Icon CodeBlanks

Quiz modeli

Question ve Quiz sınıflarının iskeletini tasarlarsın.

Proje: Quiz uygulaması

Bu 5 derslik projede bir quiz uygulaması yapacaksın. Önce Question sınıfını tanımlayacağız, sonra Quiz sınıfını aşama aşama büyüteceğiz ve son derste bir Express API ile birleştireceğiz.

Bir Question nesnesi üç özellik taşır: id (sıra numarası), text (soru metni) ve answer (doğru yanıt). JavaScript'te sınıf tanımlamanın yolu class anahtar sözcüğüdür. Örnek: class Question { constructor(id, text, answer) { this.id = id; ... } }. constructor yeni bir nesne oluşturulduğunda çağrılır ve özellikleri atar. Her dersin başlangıç kodu önceki dersin çözümünü içerecek.

this ile özellik atama

Sınıf içinde this geçerli nesneyi temsil eder. this.id = id; ataması, kurucu parametreyi nesnenin özelliği yapar. Örnek: constructor(id, text, answer) { this.id = id; this.text = text; this.answer = answer; }.

Bu atamadan sonra new Question(1, "Başkent?", "Ankara") ile oluşturulan nesnede q.id 1, q.text "Başkent?", q.answer "Ankara" olur. this olmadan atanan değişken nesneye değil, yalnızca kurucu içindeki yerel değişkene ayarlanır. Bu yüzden sınıf özellikleri her zaman this ile atanır. Bu, JavaScript sınıflarının temel ilkesidir.

Uygulama Question sınıfını tanımla

class Question tanımla: constructor(id, text, answer) gövdesi this.id = id; this.text = text; this.answer = answer;. const q = new Question(1, "Başkent?", "Ankara") ile nesne oluştur. console.log(q.text) ve console.log(q.answer) ile yazdır.

Başlangıç kodu

index.js
// Question sınıfını tanımla
// id, text, answer özelliklerini ata
// bir soru oluştur ve yazdır
// buraya yaz

Örnek çözüm

index.js
class Question {
  constructor(id, text, answer) {
    this.id = id;
    this.text = text;
    this.answer = answer;
  }
}
const q = new Question(1, "Başkent?", "Ankara");
console.log(q.text);
console.log(q.answer);

Beklenen çıktı

Başkent?
Ankara

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Question sınıfında constructor ne zaman çağrılır?

index.js
const q = new Question(1, "Soru?", "Cevap");
  • Sınıf tanımlandığında
  • new ile nesne oluşturulduğunda Doğru cevap
  • Program başladığında
  • console.log çağrıldığında

Açıklama: constructor, new ile yeni nesne oluşturulduğunda çağrılır.

2 constructor gövdesini tamamla

Soru
constructor(id, text, answer) {
  this.id = id;
  this.text = text;
  this.____ = answer;
}
Cevap
constructor(id, text, answer) {
  this.id = id;
  this.text = text;
  this.answer = answer;
}

Açıklama: this.answer ile yanıt özelliği atanır.

3 Parçayı rolüne eşle

Kavram Anlamı
class Sınıf tanımlar
constructor Yeni nesneyi başlatır
this Geçerli nesneyi temsil eder
new Nesne oluşturur

Orta seviye bölümündeki tüm dersler