Objek dan Constructor dalam Javascript

Jika sudah mempelajari beberapa bahasa pemrograman, mungkin kalian sudah pernah belajar OOP (Object oriented programing) atau bahasa pemrograman berorientasi objek. Dalam javascript kalian juga perlu mempelajari tentang cara mendeklarasikan objek dan cara menggunakannya.

Objek harus dideklarasikan sebelum digunakan. Sama seperti variabel lainnya, objek dideklarasikan dengan menggunakan var. Objek dalam javascript bisa berisi beberapa properti dan function. Anggota dari objek diapit dengan tanda kurung kurawal "{...}". Cara untuk mendeklarasikan objek adalah sebagai berikut :
var objek={
    angka:1,
    huruf:"A",
    fungsi:function(){
        document.write("halo, variabel objek adalah ", this.angka, " dan ", this.huruf);
    }
};
Untuk menggunakan properti dan function dalam objek, kalian bisa menuliskan properti atau functionnya setelah tanda titik (.) dan nama objeknya. Contoh lengkap penggunaannya dalam kode HTML bisa kalian lihat di bawah ini!

<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT>
    var objek={
        angka:1,
        huruf:"A",
        fungsi:function(){
            document.write("halo, variabel objek adalah ", this.angka, " dan ", this.huruf);
        }
    };
    document.write("angka = ", objek.angka, "<BR />");
    document.write("huruf = ", objek.huruf, "<BR />");
    objek.fungsi();
</SCRIPT>
</BODY>
</HTML>

Nilai awal dari anggota objek bisa ditentukan saat deklarasi. Nama anggota dan nilainya dipisahkan dengan tanda titik dua ":". Pada contoh di atas, variabel objek punya tiga anggota yang menyimpan nilai berupa angka, huruf dan fungsi. Dalam bahasa pemrograman lain, anggota yang menyimpan nilai berupa angka, string atau nilai lain selain function biasa disebut dengan properti atau field. Sedangkan function yang berada dalam objek biasa disebut dengan method.

Kita bisa mengakses anggota objek dengan kata "this" dari function atau method yang merupakan anggota suatu objek. Pada contoh di atas, this.angka dan this.huruf berisi nilai 1 dan "A" sesuai nilai awal masing-masing. Saat function bernama fungsi dipanggil, fungsi tersebut menampilkan nilai properti angka dan huruf.

Untuk mengetahui nama-nama anggota objek, kita bisa menggunakan for-in seperti saat kita mengakses indeks dari array.

<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT>
    var objek={
        angka:1,
        huruf:"A",
        fungsi:function(){
            document.write("halo, variabel objek adalah ", this.angka, " dan ", this.huruf);
        }
    };
    document.write("Nama anggota variabel objek : ");
    for (x in objek)document.write(x, " | ");
</SCRIPT>
</BODY>
</HTML>


Selain menggunakan titik ".", kita bisa juga menggunakan untuk mengakses anggota objek "[" dan "]" seperti pada array. Hal ini tidak aneh, karena array dalam Javascript sebenarnya juga termasuk object.
<HTML>
<HEAD>
</HEAD>
<BODY>
<SCRIPT>
    var objek={
        angka:1,
        huruf:"A",
        fungsi:function(){
            document.write("halo, variabel objek adalah ", this.angka, " dan ", this.huruf);
        }
    };
    document.write("objek.angka : ", objek.angka);
    document.write("<BR />");
    document.write("objek[angka] : ", objek["angka"]);

</SCRIPT>
</BODY>
</HTML>


Constructor

Selain mendeklarasikan objek dengan cara biasa, objek dalam javascript juga bisa dideklarasikan dengan menggunakan constructor yang bisa digunakan untuk menentukan nilai awal propertinya. Kita bisa memanfaatkan constructor yang pada dasarnya dideklarasikan seperti function expression.

<HTML>
<HEAD>
</HEAD>
<BODY>
  <SCRIPT>
    var objek=function(a, b){
        this.a=a;
        this.b=b;
        this.c=a+b;

        this.fungsi=function(){
             document.write(this.a, " + ", this.b, " = ", this.c);
        }
    };
    o=new objek(1, 2);
    p=new objek(3, 4);
    o.fungsi();
    document.write("<BR />");
    p.fungsi();
  </SCRIPT>
</BODY>
</HTML>
Sekalipun menggunakan kata function, tapi pembuatan objek dengan constructor tidak dilakukan dengan cara yang sama persis seperti pemanggilan function. Objek dibuat dengan menggunakan kata "new" sebelum nama constructor. Seperti halnya saat pemanggilan fungsi, pembuatan objek dengan constructor bisa menggunakan parameter yang bisa dijadikan nilai dari anggota objek. Tidak seperti saat mendeklarasikan function dengan "cara biasa", anggota tiap objek dalam constructor diawali dengan "this."

Selain bisa dibuat, objek ataupun variabel lain juga bisa dihapus dengan "delete". Objek yang dihapus dengan delete akan dihapus dan tidak bisa diakses lagi. Jika objek digunakan setelah dihapus, tentu saja akan terjadi error, atau objek menjadi undefined.
<HTML>
<HEAD>
</HEAD>
<BODY>
  <SCRIPT>
    var objek=function(a, b){
        this.a=a;
        this.b=b;
        this.c=a+b;
        this.fungsi=function(){
             document.write(this.a, " + ", this.b, " = ", this.c);
        }
    };
    o=new objek(1, 2);
    o.fungsi();
    document.write("<BR />");
    delete(o);  
    document.write(o);
    o.fungsi();
  </SCRIPT>
</BODY>
</HTML>