Static Method didalam Class Javascript

Static Method didalam Class Javascript
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. */


Butuh jasa pembuatan website di Makassar? kontak kami. Jasa Pembuatan Aplikasi Android, Jasa SEO dan SEM, SMM, Internet Marketing Agency, Social Media Strategist Makassar, Pembuatan Logo, Konten, Video, Maskot dan Instalasi jaringan ataupun mikrotik bisa kami lakukan

Recommended Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

WhatsApp chat