Monday, June 11, 2012

Mengembalikan Fungsi Pembangun dari Instansi Objek

Anda dimungkinkan membuat instansi baru lagi lainnya (misal, membuat instansi yang kedua setelah membuat instansi yang pertama), dengan mengacu kepada fungsi pembangun yang sama, properti constructor dimungkinkan untuk melakukan hal tersebut.

Di lain hal juga constructor dapat digunakan untuk mengembalikan bentuk fungsi pembangun dari suatu objek.

Di bawah ini adalah contoh mengembalikan fungsi pembangun instansi orangBaru:

function Orang(nama) { this.nama = nama; } var orangBaru = new Orang("Gunawan"); document.write(orangBaru.constructor);

Output:

function Orang(nama){ this.nama = nama; }

Kemudian anda ingin membuat satu instansi objek lainnya tetapi dengan menggunakan fungsi pembangun yang sama seperti instansi objek orangBaru.

Umumnya untuk membuat suatu instansi baru lainnya, anda menuliskan seperti berikut:

var orangBaruLagi = new Orang("M. Arifin");

Dengan menggunakan constructor, tidak perlu lagi menuliskan seperti di atas, cukup menuliskannya seperti ini:

var orangBaruLagi = new orangBaru.constructor("M. Arifin");

Contoh kode di bawah ini menggambarkan bahwa orangBaru dan orangBaruLagi mengacu kepada fungsi pembangun yang sama:

function Orang(nama) { this.nama = nama; } var orangBaru = new Orang("Gunawan"); var orangBaruLain = new orangBaru.constructor("M. Arifin"); document.write(orangBaru.constructor); document.write("<BR>"); document.write(orangBaruLain.constructor);

Output:

function Orang(nama){ this.nama = nama; }
function Orang(nama){ this.nama = nama; }

Contoh kode di bawah ini menguji apakah orangBaru dan orangBaruLagi mengacu kepada fungsi pembangun yang sama, yaitu Orang:

function Orang(nama) { this.nama = nama; } var orangBaru = new Orang("Gunawan"); var orangBaruLain = new orangBaru.constructor("M. Arifin"); document.write("Fungsi pembangun dari orangBaru adalah Orang: " + orangBaru.constructor == Orang); // true document.write("<BR>"); document.write("Fungsi pembangun dari orangBaruLain adalah Orang: " + orangBaruLain.constructor == Orang); // true