Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

JavaScript Lanjutan

Pelajaran 10 dari 22

Fungsi, class, dan modul

Class, extends, dan prototype

Setelah pelajaran ini kamu bisa menulis class dengan constructor dan method, menurunkannya dengan extends, dan menjelaskan letak method di prototype.

±13 menitDiperiksa 28 Sep 2026

Materi

Class adalah cetakan untuk membuat banyak objek dengan bentuk dan perilaku yang sama. constructor dijalankan sekali setiap kali objek dibuat dengan new, dan di dalamnya this menunjuk objek baru itu. Method yang ditulis di badan class dipakai bersama oleh semua objek hasil class tersebut.

class Tabungan {
  constructor(pemilik, saldo = 0) {
    this.pemilik = pemilik;
    this.saldo = saldo;
  }
  setor(n) {
    this.saldo += n;
    return this.saldo;
  }
}
class TabunganBerjangka extends Tabungan {
  constructor(pemilik, saldo, bulan) {
    super(pemilik, saldo);
    this.bulan = bulan;
  }
}
const t = new TabunganBerjangka("Dina", 100000, 12);
t.setor(50000); // 150000, method diwarisi dari Tabungan
Object.getPrototypeOf(t) === TabunganBerjangka.prototype; // true

Method tidak disalin ke setiap objek. Ia disimpan di objek prototype milik class, dan setiap objek hasil new menaut ke prototype itu. Saat t.setor dibaca, JavaScript mencari setor di t, tidak menemukannya, lalu naik ke prototype TabunganBerjangka, lalu ke prototype Tabungan. Jalur naik ini disebut rantai prototype, dan itulah yang dikerjakan extends: menyambungkan prototype class turunan ke prototype class induk. Di constructor class turunan, super(...) menjalankan constructor induk.

Class dipakai ketika banyak objek berbagi perilaku dan menyimpan keadaan masing-masing, seperti rekening, keranjang, atau voucher. Untuk data tanpa perilaku, objek biasa sudah cukup.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

class Produk { constructor(n) { this.nama = n; } info() { return this.nama; } } const a = new Produk("Pena"); const b = new Produk("Map"); Apa hasil a.info === b.info?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke