JS OOP: 17. Class super constructor

by istiq20

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Class super constructor</title>
  </head>
  <body>
    <script>
      // parent class
      class Employee {
        constructor(firstName) {
          this.firstName = firstName;
        }

        sayHello(name) {
          console.info(`Hello ${name}, my name is employee ${this.firstName}`);
        }
      }

      // child class
      class Manager extends Employee {
        constructor(firstName, lastName) {
          // wajib memanggil constructor super class (parent class)
          super(firstName); // parameter tidak wajib diisi (optional)
          this.lastName = lastName;
        }

        sayHello(name) {
          console.info(
            `Hello ${name}, my name is manager ${this.firstName} ${this.lastName}`
          );
        }
      }

      const budi = new Employee("Budi");
      budi.sayHello("Joko"); // Hello Joko, my name is employee Budi

      const eko = new Manager("Eko", "Khannedy");
      eko.sayHello("Joko"); // Hello Joko, my name is manager Eko Khannedy

      console.info(budi);
      console.info(eko);
    </script>
  </body>
</html>