Menggunakan super
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 37 dari 56.
Saat kamu melakukan override pada method, kamu tetap bisa mengakses versi asli dari parent menggunakan super.methodName(). Ini memungkinkanmu memperluas atau mengubah perilaku parent alih-alih menggantinya sepenuhnya.
Buat class induk dengan method:
class Animal {
makeSound() {
return "Generic animal sound";
}
}Buat class turunan yang memperluas class induk:
class Dog extends Animal {
makeSound() {
// Panggil method induknya terlebih dahulu
const parentSound = super.makeSound();
// Lalu tambahkan fungsi lainnya
return `${parentSound}, but also Woof!`;
}
}Buat instance dari child class:
const myDog = new Dog();
console.log(myDog.makeSound());
// output: "Generic animal sound, but also Woof!"Kata kunci super memungkinkan kamu memanggil method dari class induk sambil tetap menambahkan fungsionalitasmu sendiri di class anak.
Tantangan
Kamu diberi class Shape dengan method calculateArea() dan class Rectangle yang mewarisinya. Tugasmu adalah melakukan override pada method calculateArea() di Rectangle menggunakan super.
Tugasmu adalah melengkapi method calculateArea() di class Rectangle untuk:
- Memanggil method
calculateArea()milik parent menggunakansuperdan menyimpan hasilnya - Menghitung luas persegi panjang yang sebenarnya:
width × height - Mengembalikan string gabungan: pesan dari parent + luas persegi panjang. Contoh:
Calculating area... Rectangle area: 50
Coba sendiri
import { Shape } from './shapes.js';
import { Rectangle } from './shapes.js';
// Kode pengujian, jangan ubah
const rectangle = new Rectangle(5, 10);
console.log(rectangle.calculateArea()); // Yang diharapkan: "Calculating area... Rectangle area: 50"
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Object dan Kata Kunci this
Tinjauan Singkat: objectMenambahkan method ke objectMemahami Kata Kunci thisFungsi KonstruktorKata Kunci newTantangan Rangkuman7Pewarisan & Kata Kunci extends
PewarisanHubungan "is-a"Kata Kunci extendsmethod super()Mewarisi property & methodTantangan Rangkuman2Mengatur Kode
Apa itu module?Mengekspor dengan exportMengimpor dengan importEkspor default vs. ekspor bernama8Mengatur Kode OOP
Mengatur class ke dalam module11Proyek: Perender Bentuk
Penyiapan: class Shape & EksporPewarisan class CircleOverride & Method LuasPenghitung Shape Statis14Sistem Manajemen Perpustakaan
Merancang PerpustakaanClass Book dengan CompositionValidasi Penulis Buku9Method dan property Statis
Level class vs. level instanceProperty StatisMethod Utilitas StatisTantangan RangkumanLatihan sendiri: Compiler JavaScript online