Metode dengan nama "constructor" adalah metode spesial untuk pembuatan dan penginisialisasian objek yang dibuat dengan kelas.
sintaks
constructor([arguments]) { ... }
Deskripsi
Hanya boleh ada satu metode spesial dengan nama "constructor" dalam sebuah kelas. SyntaxError
akan dilemparkan jika suatu kelas memiliki lebih dari satu metode konstruktor.
Konstruktor dapat menggunakan kata kunci super
untuk memanggil konstruktor orang-tua.
Jika metode konstruktor tidak didefinisikan dalam sebuah kelas, maka kontruktor asali yang akan digunakan.
Contoh
Menggunakan metode constructor
Potongan kode ini diambil dari contoh kelas (demostrasi langsung).
class Square extends Polygon {
constructor(length) {
// Di sini, akan memanggil konstruktor orang-tua dengan panjang
// diberikan untuk panjang dan tinggi Polygon
super(length, length);
// Catatan: di kelas turunan, super() harus dipanggil sebelum
// bisa menggunakan kata kunci 'this'. Meninggalkan pemanggilan ini di awal
// akan menyebabkan kesalahan referensi.
this.name = 'Square';
}
get area() {
return this.height * this.width;
}
set area(value) {
this.area = value;
}
}
Konstruktor asali
Jika metode konstruktor tidak didefinisikan dalam sebuah kelas, maka kontruktor asali yang akan digunakan. Untuk konstruktor asali untuk kelas dasar adalah:
constructor() {}
Konstruktor asali untuk kelas turunan adalah:
constructor(...args) {
super(...args);
}
Spesifikasi
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Constructor Method' in that specification. |
Standard | Definisi awal |
ECMAScript Latest Draft (ECMA-262) The definition of 'Constructor Method' in that specification. |
Draft |
Kompatibilitas Peramban
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 42.0 | 45 (45) | ? | ? | ? |
Default constructors | ? | 45 (45) | ? | ? | ? |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | No support | 42.0 | 45.0 (45) | ? | ? | ? | 42.0 |
Default constructors | ? | ? | 45.0 (45) | ? | ? | ? | ? |