Terakhir diperbaharui: Oct 24, 2020
Class
Pada bahasa pemrograman seperti Java atau C# konsep class cukup familiar bahkan penggunaan class cukup mendominasi dalam pembuatan aplikasi Java atau C#.
Class bisa didefinisikan sebagai kumpulan variable dan method yang dipakai sebagai blueprint atau rancangan untuk membuat sebuah object(bukan JavaScript Object).
Apakah JavaScript juga memiliki konsep class?
Asalnya JavaScript tidak memiliki konsep class, karena JavaScript bukan Object Oriented Programming(OOP) language tapi Prototype-based language.
Namun pada tahun 2015, ES6 memperkenalkan konsep class, yang mirip dengan class pada OOP language meskipun tidak benar-benar mirip.
Syntax class pada JavaScript:
1class className {2 constructor()34 method1()5 method2()6 ...7}
contoh:
1class Dino {2 constructor(name) {3 this.name = name;4 }56 weight = 100;78 sayHi() {9 console.log(`Hi my name is ${this.name}`);10 }11}1213const blueDino = new Dino('brachio');14const redDino = new Dino('t-rex');1516//call1718console.log(blueDino.weight); //10019console.log(redDino.weight); //1002021blueDino.sayHi(); // Hi my name is brachio22redDino.sayHi(); // Hi my name is t-rex
Pada code di atas kita membuat dua object/instance baru yaitu blueDino & redDino yang keduanya memiliki 'karakter' yang sama karena sama-sama menerapkan blueprint dari class Dino.
Instance adalah sebuah object perwujudan dari class, memiliki variable dan method yang sama dan sesuai dengan apa yang digambarkan oleh class.
Bagian-bagian Class
1. Constructor
special method yang dieksekusi sebelum method yang lain.
2. Field
variable yang dideklarasikan di dalam class.
3. Method
function yang dideklarasikan di dalam class.
4. Getter/Setter
method yang digunakan untuk mengakses value dan mengubah value di dalam class.
Contoh
1class Dino {2 //constructor3 constructor(name, age, weight) {4 this.name = name;5 this.age = age;6 this.weight = weight;7 }89 // getter10 get name() {11 return this.name;12 }1314 // setter15 set name(newName) {16 this.name = newName17 }1819 // method20 greeting() {21 console.log(`Hi my name is ${this.name}`);22 }23}
Untuk saat ini kita cukup mengetahui bahwa JavaScript memiliki konsep class meskipun tidak benar-benar mirip dengan class pada OOP language seperti Java atau C#.