Menu
CoddyTech

method super()

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 27 dari 56.

method super() membuat dan menginisialisasi object menggunakan constructor dari parent class. Kamu harus memanggilnya sebelum menambahkan property apa pun ke child class.

Bayangkan seperti ini: class induk membangun fondasi object, dan super() mengatakan "bangun fondasi itu terlebih dahulu" sebelum class anak menambahkan fiturnya sendiri.

Mari kita lihat contohnya. Buat class induk:

class Employee {
  constructor(name) {
    this.name = name;
  }
}

Sekarang buat child class yang memperluas parent:

class Manager extends Employee {
  constructor(name, department) {
    super(name); // Panggil constructor induk dengan name
    this.department = department;
  }
}

Yang terjadi di sini:

  1. constructor(name, department) - Manager membutuhkan name dan department
  2. super(name) - Meneruskan name ke constructor milik Employee
  1. this.department - Mengatur property unik milik Manager

Ini membuat Manager yang memiliki property warisan (name) dan property-nya sendiri (department)!

Buat instance dari child class:

const myManager = new Manager("Sarah", "Engineering");
console.log(myManager.name);      // "Sarah"
console.log(myManager.department); // "Engineering"

method super() harus dipanggil sebelum menggunakan this di constructor class turunan. Jika kamu tidak memanggil super(), JavaScript akan memunculkan error referensi.

challenge icon

Tantangan

Diberikan Salad class yang memperluas Meal. Salad harus memiliki nama dan bahan-bahan.

Tugasmu adalah melengkapi constructor class Salad dengan cara:

  1. Memanggil super() dengan property name
  2. Menetapkan property ingredients

Coba sendiri

import { Meal } from './classes.js';
import { Salad } from './classes.js';

// Kode pengujian, jangan ubah
const salad = new Salad("Caesar", ["lettuce", "croutons", "cheese"]);
console.log(salad.name);       // Seharusnya menghasilkan output "Caesar"
console.log(salad.ingredients); // Seharusnya menghasilkan output ["lettuce", "croutons", "cheese"]
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler JavaScript online