Static Method didalam Class Javascript

Static Method didalam Class Javascript
DAFTAR ISI
Semua kendaraan pasti butuh yang namanya perawatan bukan? Bila iya, tentu kita harus membuat method repair untuk memperbaiki kendaraan itu.

Dalam analogi dunia nyata, saat kendaraan mengalami kerusakan maka kendaraan itu akan diperbaiki di bengkel (factory), sehingga kita harus membuat class baru yang berperan sebagai factory, sebutlah class itu VehicleFactory. Di dalam kelas VehicleFactory terdapat satu method repair() yang bisa menerima banyak kendaraan sebagai parameternya.

    1. class Vehicle {
    1.   constructor(licensePlate, manufacture) {
    1.       this.licensePlate = licensePlate;
    1.       this.manufacture = manufacture;
    1.       this.engineActive = false;
    1.   }
    1.    /*
    1.   kode lainnya
    1.   */
    1. }
    1.  
    1. /* kode lainnya dalam pembuatan class Car, 
    1. Motorcycle, dsb. */
    1.  
    1. class VehicleFactory {
    1.  repair(vehicles) {
    1.     vehicles.forEach(vehicle => {
    1.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
    1.     })
      1.   }
    1. }

Untuk mengakses method dari class, sejauh ini kita harus membuat instance dari classnya terlebih dulu. Sehingga untuk memanggil repair(), kita harus membuat instance dari class VehicleFactory
    1. const johnCar = new Car(“H121S”, “Honda”, 4);
    1. const tomMotor = new Motorcycle(“GF121J”, “Yamaha”, 2);
    1. const dimasCar = new Car(“TA1408K”, “Tesla”, 4);
    1.  
    1. /* Membuat instance untuk memanggil fungsi repair */
    1. const vehicleFactory = new VehicleFactory();
    1. vehicleFactory.repair([johnCar, tomMotor, dimasCar]);
    1.  
    1. /* output:
    1. Kendaraan H121S sedang melakukan perawatan
    1. Kendaraan GF121J sedang melakukan perawatan
    2. Kendaraan TA1408K sedang melakukan perawatan
    3. */

Kode itu berjalan seperti harapan tetapi tidak efektif. Kenapa? Sebab kita harus membuat instance untuk sekedar memanggil satu fungsi dari class-nya itu. Membuat instance ialah membuat sebuah objek baru yang terbentuk melalui blueprint sehingga memerlukan memori ekstra. Bila kita bisa mengakses method itu tanpa melalui instance kenapa tidak? Pada kasus inilah kita memerlukan sebuah static method. Static method merupakan method yang tidak bisa dipanggil oleh instance dari class, tetapi bisa dipanggil melalui class-nya sendiri.
Pada ES6 class kita bisa membuat static method dengan menambahkan keyword static sebelum deklarasi method-nya:
    1. class Vehicle {
    1.   constructor(licensePlate, manufacture) {
    1.       this.licensePlate = licensePlate;
    1.       this.manufacture = manufacture;
    1.       this.engineActive = false;
    1.   }
    1.    /*
    1.   kode lainnya
    1.   */
    1. }
    1.  
    1. /* kode lainnya dalam pembuatan class Car, 
    1. Motorcycle, dsb. */
    1.  
    1. class VehicleFactory {
    1.  static repair(vehicles) {
    1.     vehicles.forEach(vehicle => {
    1.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
    1.     })
      1.   }
    1. }

Kemudian untuk memanggil methodnya kita dapat panggil melalui class Vehicle kemudian repair().
Semua kendaraan pasti butuh yang namanya perawatan bukan? Bila iya, tentu kita harus membuat method repair untuk memperbaiki kendaraan itu. Dalam analogi dunia nyata, saat kendaraan mengalami kerusakan maka kendaraan itu akan diperbaiki di bengkel (factory), sehingga kita harus membuat class baru yang berperan sebagai factory, sebutlah class itu VehicleFactory. Di dalam kelas VehicleFactory terdapat satu method repair() yang bisa menerima banyak kendaraan sebagai parameternya.
    1. class Vehicle {
    1.   constructor(licensePlate, manufacture) {
    1.       this.licensePlate = licensePlate;
    1.       this.manufacture = manufacture;
    1.       this.engineActive = false;
    1.   }
    1.    /*
    1.   kode lainnya
    1.   */
    1. }
    1.  
    1. /* kode lainnya dalam pembuatan class Car, 
    1. Motorcycle, dsb. */
    1.   
    1. class VehicleFactory {
    1.  repair(vehicles) {
    1.     vehicles.forEach(vehicle => {
    1.       console.log(`Kendaraan ${vehicle.licensePlate} sedang melakukan perawatan`)
    1.     })
      1.   }
    1. }

Untuk mengakses method dari class, sejauh ini kita harus membuat instance dari classnya terlebih dulu. Sehingga untuk memanggil repair(), kita harus membuat instance dari class VehicleFactory
    1. const johnCar = new Car(“H121S”, “Honda”, 4);
    1. const tomMotor = new Motorcycle(“GF121J”, “Yamaha”, 2);
    1. const dimasCar = new Car(“TA1408K”, “Tesla”, 4);
    1.  
    1. /* Membuat instance untuk memanggil fungsi repair */
    1. const vehicleFactory = new VehicleFactory();
    1. vehicleFactory.repair([johnCar, tomMotor, dimasCar]);
    1.  
    1. /* output:
    1. Kendaraan H121S sedang melakukan perawatan
    1. Kendaraan GF121J sedang melakukan perawatan
    2. Kendaraan TA1408K sedang melakukan perawatan
    3. */

Baca Juga:  Variabel Global & Local (Bahasa C)

Ebook Gratis!!

Subscribe untuk dapatkan e-book GRATIS dan informasi teknologi terbaru dan diskon menarik langsung di Email-mu

Programmer Indonesia
Programmer Indonesia
Admin yang mengelola konten khusus berita. Kalau ada yang ingin diinfokan langsung chat aja ya :D
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
WhatsApp chat