Object dalam bahasa yang paling disalahpahami di dunia
Banyak yang percaya, JavaScript adalah bahasa yang paling disalahpahami di dunia.. Contohnya dalam memahami Object dalam javaScript.Mana sebenarnya "Object" dalam JavaScript?
JavaScript dibentuk dari object. Array adalah object. Fungsi adalah object. Object adalah Object. Jadi, mana object sebenarnya???Object adalah pasangan nama dan nilai. Nama-nama adalah string, dan nilai dari string tersebut bisa bertipe string, angka, boolean, dan juga bertipe object (fungsi dan array).. Wahaha.. makin bingung kan?
Begini.., Object biasanya diimplementasikan sebagai hashtables sehingga nilai dapat diambil dengan cepat. Jika kamu masih bingung dengan hashtables, coba baca artikel yang bagus tentang hashtables disini.
Jika nilai merupakan sebuah fungsi, kita dapat menganggapnya sebagai method. Ketika method sebuah object dipanggil, variable ini kemudian akan dimasukkan kedalam object. Method dapat secara instan mengakses variable melalui variable lain.
Perlu diingat, Object hanya dapat diproduksi oleh Constructor, yang memang berfungsi untuk menginisialisasi object. Constructor menyediakan fitur yang memberikan class dalam bahasa yang berbeda, termasuk variable static dan method.
Tipe Object: Public dan Private
Public
Anggota atau member sebuah object bertipe public. Fungsi apapun dapat mengakses, memodifikasi, menambah atau menghapus anggota. Ada dua teknik untuk menambahkan anggota dalam object. Yaitu dengan menambahkan kedalam Constructor atau melalui Protoype..Teknik ConstructorTeknik ini biasanya digunakan untuk menginisalisasi variable instan publik. Konstruktor variable ini digunakan untuk menambahkan anggota ke dalam object.
Contoh:
function myContainer(param){
this.member = param;
}
Jadi, saat ingin membuat sebuah object baru, kita cukup menggunakan cara:
var myNewContainer = new myContainer('abc');
Object baru kita, "myNewContainer" adalah object yang dibangun dengan menggunakan konstruktor fungsi "myContainer".
Object myNewContainer secara otomatis mempunyai anggota bernilai 'abc'. (myNewContainer.member)
Teknik PrototypeTeknik ini biasanya digunakan untuk menambahkan method public. Ketika anggota dicari (dan tidak ditemukan) dalam sebuah object yang dicari, maaka anggota akan diambil dari anggota prototype Constructor itu sendiri. Mekanisme ini digunakan untuk pewarisan, yang dapat lebih menghemat memori dibandingkan dengan selalu membuat object baru.
Teknik protoype ini juga dapat digunakan untuk metode dari object yang dibuat oleh Constructor.
Contoh:
myContainer.prototype.stamp = function(string){
return this.member + string;
}
dari contoh diatas, kita telah menambahkan sebuah method baru kedalam sebuah constructor, yaitu "stamp"... jadi nilai otomatis diwariskan ke object yang dibuat dengan constructor tersebut...Coba kita panggil object yang kita ciptakan sebelumnya dengan cara:
myNewContainer.stamp('def');
Maka, nilai dari object myNewContainer sekarang menjadi 'abcdef'.
Contoh:
function myContainer(param){ this.member = param; }
Jadi, saat ingin membuat sebuah object baru, kita cukup menggunakan cara:
var myNewContainer = new myContainer('abc');
Object baru kita, "myNewContainer" adalah object yang dibangun dengan menggunakan konstruktor fungsi "myContainer".
Object myNewContainer secara otomatis mempunyai anggota bernilai 'abc'. (myNewContainer.member)
Teknik PrototypeTeknik ini biasanya digunakan untuk menambahkan method public. Ketika anggota dicari (dan tidak ditemukan) dalam sebuah object yang dicari, maaka anggota akan diambil dari anggota prototype Constructor itu sendiri. Mekanisme ini digunakan untuk pewarisan, yang dapat lebih menghemat memori dibandingkan dengan selalu membuat object baru.
Teknik protoype ini juga dapat digunakan untuk metode dari object yang dibuat oleh Constructor.
Contoh:
myContainer.prototype.stamp = function(string){
return this.member + string;
}
dari contoh diatas, kita telah menambahkan sebuah method baru kedalam sebuah constructor, yaitu "stamp"... jadi nilai otomatis diwariskan ke object yang dibuat dengan constructor tersebut...Coba kita panggil object yang kita ciptakan sebelumnya dengan cara:
myNewContainer.stamp('def');
Maka, nilai dari object myNewContainer sekarang menjadi 'abcdef'.
Teknik protoype ini juga dapat digunakan untuk metode dari object yang dibuat oleh Constructor.
Contoh:
myContainer.prototype.stamp = function(string){ return this.member + string; }dari contoh diatas, kita telah menambahkan sebuah method baru kedalam sebuah constructor, yaitu "stamp"... jadi nilai otomatis diwariskan ke object yang dibuat dengan constructor tersebut...Coba kita panggil object yang kita ciptakan sebelumnya dengan cara:
myNewContainer.stamp('def');Maka, nilai dari object myNewContainer sekarang menjadi 'abcdef'.
Tidak ada komentar:
Posting Komentar