JavaScript menggunakan functions dan prototype-based inheritance untuk membuat reusable components, hal ini cukup membingungkan bagi programmers yang terbiasa dengan pendekatan object-oriented.
Dimulai dari ECMAScript 2015(ES6), JavaScript programmers dapat membuat program dengan pendekatan object-oriented class-based. Hal ini juga dapat diimplementasikan lewat TypeScript.
Untuk membuat class berikut kerangka dasarnya:
class nama_class{
property
constructor(){
}
method(){
}
}
Dalam class, kita bisa mendefinisikan property dan method. Constructor adalah special method yang dipanggil saat object class dibuat dengan perintah new.
Berikut contoh class sederhana:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet() {
return "Hello, " + this.greeting;
}
}
let greeter = new Greeter("world");
Jika Anda lihat hasil compilenya, class diconvert menjadi prototype based object.
var Greeter = /** @class */ (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.greet = function () {
return "Hello, " + this.greeting;
};
return Greeter;
}());
var greeter = new Greeter("world");
Jadi bila Anda tidak terbiasa dengan prototype, menggunakan class lewat TypeScript, kemudian dicompile menjadi bentuk prototype akan sangat membantu.
Selain itu, pendekatan class juga lebih mudah dibaca dan mudah dalam maintenance.