Object Oriented Programming
Dalam OOP banyak mengenal class, class ini merupakan sebuah blueprint yang bisa digunakan berkali kali jika cara kerja sebuah object sama dan hanya memiliki perbedaan di valuenya
sebagi contoh seperti ini, ada sebuah pabrik yang ingin membuat mobil, kalau dilihat pada pembuatan tersebut memiliki spesifikasi yang sama namun warna dan mesinnya saja berbeda. dengan demikian maka pabrik pun membuat sebuah cetakan yang bisa digunakan berkali kali. Atau lebih dikenal sebagai template/blueprint
Dijavascript memiliki 2 blueprint yaitu function constructor dan class
Function constructor
function Car() {}
secara sekilas mirip seperti function biasa, namun jika dilihat dengan seksama, terdapat perbedaan pada penamaannya yaitu menggunakan huruf kapital.
// function constructor
function Car() {}
// function biasa
function Car() {}
Class
untuk class sendiri seperti ini
class Car {}
bagaimana untuk penggunaannya
class Car {
constructor(name, engine, color) {
this.name = name;
this.engine = engine;
this.color = color;
}
buildCar() {
return `Build car ${this.name} with engine ${this.engine} and ${this.color} color`;
}
}
const car = new Car("Kangoroo", "t100", "orange");
console.log(car.buildCar());
// outpur
// Build car Kangoroo with engine t100 and orange color
Access Modifier
dalam oop juga terdapat sebuah konsep untuk mengatur akses properti dan method yang ada didalam sebuah class. Tujuan akses ini adalah untuk membatasi function dari luar untuk mengubah nilai atau function yang ada didalam class.
Access modifier memiliki 2 akses yaitu public dan private Dengan akses public, property dan method yang ada di class dapat diakses dari luar class tersebut
function Car(name, engine, color) {
// public property
this.name = name;
this.engine = engine;
// private property
var color = color;
// publict method
this.buildCar = () => {
return `Build car ${this.name} with engine ${this.engine} and ${color} color`;
};
function detail() {
return `Detail {this.car} engine ${this.engine} color ${colorProp}`;
}
}
const car = new Car("kangoroo", "t-100", "red");
console.log(car.buildCar());
// Output: Build car kangoroo with engine t-100 and red color
console.log(car.detail());
// Output: TypeError: car.detail is not a function