Kelas JavaScript dan Warisan (ES6)
Menurut ES6, Anda dapat menggunakan kelas JavaScript dan warisan untuk mencapai apa yang Anda butuhkan.
Kelas JavaScript, yang diperkenalkan di ECMAScript 2015, pada dasarnya adalah gula sintaksis atas warisan berbasis prototipe JavaScript yang ada.
Referensi: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes
Pertama-tama, kami mendefinisikan kelas abstrak kami. Kelas ini tidak dapat dibuat instance-nya, tetapi dapat diperpanjang. Kita juga bisa mendefinisikan fungsi yang harus diimplementasikan di semua kelas yang memperluas kelas ini.
/**
* Abstract Class Animal.
*
* @class Animal
*/
class Animal {
constructor() {
if (this.constructor == Animal) {
throw new Error("Abstract classes can't be instantiated.");
}
}
say() {
throw new Error("Method 'say()' must be implemented.");
}
eat() {
console.log("eating");
}
}
Setelah itu, kita dapat membuat Kelas beton kita. Kelas-kelas ini akan mewarisi semua fungsi dan perilaku dari kelas abstrak.
/**
* Dog.
*
* @class Dog
* @extends {Animal}
*/
class Dog extends Animal {
say() {
console.log("bark");
}
}
/**
* Cat.
*
* @class Cat
* @extends {Animal}
*/
class Cat extends Animal {
say() {
console.log("meow");
}
}
/**
* Horse.
*
* @class Horse
* @extends {Animal}
*/
class Horse extends Animal {}
Dan hasilnya ...
// RESULTS
new Dog().eat(); // eating
new Cat().eat(); // eating
new Horse().eat(); // eating
new Dog().say(); // bark
new Cat().say(); // meow
new Horse().say(); // Error: Method say() must be implemented.
new Animal(); // Error: Abstract classes can't be instantiated.