Tutorial JS

JS RUMAH Pengenalan JS JS Dimana Keluaran JS Pernyataan JS Sintaks JS Komentar JS Variabel JS JS Let JS Const Operator JS JS Aritmatika Tugas JS Tipe Data JS Fungsi JS Objek JS Acara JS String JS Metode String JS Pencarian String JS Template String JS Nomor JS Metode Nomor JS JS Array Metode Array JS Sortir Array JS Iterasi Array JS JS Array Const Tanggal JS Format Tanggal JS Metode Dapatkan Tanggal JS Metode Penetapan Tanggal JS JS Matematika JS Acak JS Boolean Perbandingan JS Ketentuan JS Beralih JS JS Loop Untuk JS Loop Untuk Masuk JS Loop Untuk Of JS Loop Sementara Istirahat JS JS Iterable JS Set Peta JS Tipe JS Konversi Tipe JS JS Bitwise JS RegExp Kesalahan JS Lingkup JS Pengangkatan JS Mode Ketat JS JS Kata Kunci ini Fungsi Panah JS Kelas JS JS JSON Debug JS Panduan Gaya JS Praktik Terbaik JS Kesalahan JS Kinerja JS Kata-kata Cadangan JS

Versi JS

Versi JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Tepi Sejarah JS

Objek JS

Definisi Objek Properti Objek Metode Objek Tampilan Objek Aksesor Objek Konstruktor Objek Prototipe Objek Obyek Iterable Set Objek Peta Objek Referensi Objek

Fungsi JS

Definisi Fungsi Parameter Fungsi Panggilan Fungsi Panggilan Fungsi Fungsi Terapkan Penutupan Fungsi

Kelas JS

Perkenalan Kelas Warisan Kelas Kelas Statis

JS Asinkron

Panggilan Balik JS JS Asinkron JS Janji JS Async/Menunggu

JS HTML DOM

Pengenalan DOM Metode DOM Dokumen DOM Elemen DOM HTML DOM Formulir DOM CSS DOM Animasi DOM Acara DOM Pendengar Acara DOM Navigasi DOM Node DOM Koleksi DOM Daftar Node DOM

JS Browser BOM

Jendela JS Layar JS Lokasi JS Sejarah JS JS Navigator Peringatan Munculan JS Waktu JS JS Cookies

JS Web API

Pengantar API Web API Formulir Web API Riwayat Web API Penyimpanan Web API Pekerja Web API Pengambilan Web API Geolokasi Web

JS AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

JS JSON

Perkenalan JSON Sintaks JSON JSON vs XML Tipe Data JSON Penguraian JSON Stringify JSON Objek JSON Array JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Pemilih jQuery jQuery HTML jQuery CSS jQuery DOM

Grafik JS

Grafik JS JS Kanvas JS Plotly JS Chart.js Bagan Google JS JS D3.js

Contoh JS

Contoh JS JS HTML DOM Masukan HTML JS Objek HTML JS Acara HTML JS JS Browser Editor JS Latihan JS kuis JS Sertifikat JS

Referensi JS

Objek JavaScript Objek DOM HTML


Warisan Kelas JavaScript


Warisan Kelas

Untuk membuat pewarisan kelas, gunakan extends kata kunci.

Kelas yang dibuat dengan pewarisan kelas mewarisi semua metode dari kelas lain:

Contoh

Buat kelas bernama "Model" yang akan mewarisi metode dari kelas "Mobil":

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'I have a ' + this.carname;
  }
}

class Model extends Car {
  constructor(brand, mod) {
    super(brand);
    this.model = mod;
  }
  show() {
    return this.present() + ', it is a ' + this.model;
  }
}

let myCar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = myCar.show();

Metode super()mengacu pada kelas induk.

Dengan memanggil super()metode dalam metode konstruktor, kita memanggil metode konstruktor induk dan mendapatkan akses ke properti dan metode induk.

Warisan berguna untuk penggunaan kembali kode: menggunakan kembali properti dan metode kelas yang ada saat Anda membuat kelas baru.


Getter dan Setter

Kelas juga memungkinkan Anda menggunakan getter dan setter.

Menggunakan getter dan setter untuk properti Anda dapat menjadi hal yang cerdas, terutama jika Anda ingin melakukan sesuatu yang istimewa dengan nilai tersebut sebelum mengembalikannya, atau sebelum Anda menyetelnya.

Untuk menambahkan getter dan setter di kelas, gunakan kata kunci getand .set

Contoh

Buat pengambil dan penyetel untuk properti "carname":

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  get cnam() {
    return this.carname;
  }
  set cnam(x) {
    this.carname = x;
  }
}

let myCar = new Car("Ford");

document.getElementById("demo").innerHTML = myCar.cnam;

Catatan: meskipun pengambil adalah metode, Anda tidak menggunakan tanda kurung saat ingin mendapatkan nilai properti.

Nama metode pengambil/penyetel tidak boleh sama dengan nama properti, dalam hal ini carname.

Banyak programmer menggunakan karakter garis bawah _ sebelum nama properti untuk memisahkan pengambil/penyetel dari properti sebenarnya:

Contoh

Anda dapat menggunakan karakter garis bawah untuk memisahkan pengambil/penyetel dari properti sebenarnya:

class Car {
  constructor(brand) {
    this._carname = brand;
  }
  get carname() {
    return this._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}

let myCar = new Car("Ford");

document.getElementById("demo").innerHTML = myCar.carname;

Untuk menggunakan setter , gunakan sintaks yang sama seperti saat Anda menetapkan nilai properti, tanpa tanda kurung:

Contoh

Gunakan penyetel untuk mengubah nama mobil menjadi "Volvo":

class Car {
  constructor(brand) {
    this._carname = brand;
  }
  get carname() {
    return this._carname;
  }
  set carname(x) {
    this._carname = x;
  }
}

let myCar = new Car("Ford");
myCar.carname = "Volvo";
document.getElementById("demo").innerHTML = myCar.carname;


Mengangkat

Tidak seperti fungsi, dan deklarasi JavaScript lainnya, deklarasi kelas tidak diangkat.

Itu berarti Anda harus mendeklarasikan sebuah kelas sebelum Anda dapat menggunakannya:

Contoh

//You cannot use the class yet.
//myCar = new Car("Ford")
//This would raise an error.

class Car {
  constructor(brand) {
    this.carname = brand;
  }
}

//Now you can use the class:
let myCar = new Car("Ford")

Catatan: Untuk deklarasi lain, seperti fungsi, Anda TIDAK akan mendapatkan kesalahan saat mencoba menggunakannya sebelum dideklarasikan, karena perilaku default deklarasi JavaScript adalah mengangkat (memindahkan deklarasi ke atas).