Metode JavaScript hanyalah property yang telah ditugasi fungsi sebagai nilainya. salah satu kegunaan dari prototype adalah untuk mewarisi kelas dengan memberikannya metode baru. keuntungan dari penggunaan prototype adalah bahwa metode tidak perlu diciptakan dan diinisialisasi setiap kali objek diciptakan, dan tidak ada publikasi kode fungsi.
Oke untuk lebih jelasnya saya akan memberikan contohnya :
<!DOCTYPE html>
<html>
<head>
<title> Pewarisan Metode</title>
<script type="text/javascript">
function Buku(judul, pengarang, harga)
{
//konstruktor buku
this.judul = judul; //property buku
this.pengarang = pengarang;
this.harga = harga;
this.tampil = tampilProp; //Metode buku
}
function tampilProp()
{
var hasil = "";
for (var i in this)
{
hasil += i + " = " + this[i] + "<br/>";
}
return hasil;
}
</script>
</head>
<body bgcolor="#EOFFFF">
<script type="text/javascript">
//menambahkan metode baru dengan prototype
Buku.prototype.tambahPajak=function tambahPajak()
{
this.harga *= 1.18;
return(this.harga.toFixed(2));
}
var bukuTerkenal = new Buku("War and peace", "Leo Tolstoy", 30.00);
var bukuKu = new Buku("Javascript by Example", "Ellie Quigley", 25);
document.write("<br /><b>" + bukuTerkenal.tampil() + "<br />");
document.write("<br /><b>" + bukuKu.tampil() + "<br />");
document.write("Termasuk pajak, \"" + bukuTerkenal.judul + "\" harga Rp." +bukuTerkenal.tambahPajak() +".<br/>");
document.write("Termasuk pajak, \"" + bukuKu.judul + "\" harga Rp. "+ bukuKu.tambahPajak() +".<br />");
</script>
</body>
</html>
Penjelasan:
- Fungsi konstruktor Buku mendefinisikan properti dan metode untuk kelas Buku. Fungsi konstruktor ini memiliki sebuah objek prototype yang memuat semua properti yang diwariskan kepada semua objek buku.
- sebuah fungsi, tampilprop, didefinisikan pada baris 3. namanya ditugas kepada properti tampil, yang membuatnya menjadi metode buku untuk kelas buku.
- Fungsi tampilProp menggunakan loop for spesial untuk berinteraksi melalui semua properti dari suatu objek.
- properti prototype dari buku dipakai untuk menambahkan sebuah fungsi, tambahPajak(). fungsi itu menghitung dan menghasilkan harga buku dengan 18 persen pajak penjualan. Fungsi itu ditambahkan sebagai sebuah metode pada kelas Buku dan tersedia bagi semua objek dari kelas itu. Javascript hanya menciptakan satu salinan dari fungsi tersebut dan semua objek buku dapat mengakses salainan tersebut.
- sebuah objek Buku yang baru, bukuku diciptakan . ia mewarisi semua properti asli dari kelas buku termasuk metode baru yang didefinisikan oleh properti prototype, tambah pajak.
- metode tampil() dipaggil untuk objek bukuTerkenal. objek, properti, dan metodenya ditampilkan . teman – teman dapat melihat bahwa tambahPajak termasuk di dalamnya.
- metode baru , tambahPajak(), dipaggil untuk objek bukuTerkenal.
- sekali lagi, tambahPajak() dipanggil untuk objek bukuKu.
Oke untuk lebih jelasnya silahkan cek hasilnya dibrowser.