Advance JavaScript 3 - prototype part 3
Advance JavaScript 3 - prototype part 3
Kita masih membahas tentang prototype Dan artikel ke 3 ini Kita akan langsung ke into dari prototype nya Kita akan liat apa itu prototype Dan implementasi nya didalam JavaScript.
Jika Kita membuat object seperti ini
function mahasiswa(nama,energi){
this.nama = nama;
this.energi = energi;
}
Dibelakang layar sebetulnya JavaScript nya membuat Kan variable this yang bentuk nya object Dan return this Dan membawa object.create Kan kalau object.create itu seperti memanggil class yang lain untuk dijadikan sebagai class parent nya nah sebenar nya didalam object.create nya itu JavaScript memanggil object mahasiswa.prototipe
Jadi seperti ini
function mahasiswa(nama,energi){
let this = object.create(mahasiswa.prototype)
this.nama = nama;
this.energi = energi;
return this
}
Jadi secara default itu sebetul nya constructur function itu sudah mempunyai parent nama nya prototype ,sehingga dari sini Kita tidak perlu lagi bikin object baru atau object lain yang dijadikan sebagai parent
Jadi Kita bisa gini kalau kalian ingin membuat method nya Kita akan memanfaatkan prototype nya tadi
function mahasiswa(nama,energi){
this.nama = nama;
this.energi = energi;
}
mahasiswa.prototype.makan = function(porsi) {
this.energi += porsi;
return `hallo ${this.nama} selamat makan`
}
let gimas = mahasiswa("gimasn",20)
Sekarang method yang Kita buat Ada didalam prototype ,ini mirip dengan sebuah konsep class yang memiliki inheritenance atau pewarisan.karena itu didalam JavaScript konsep ini disebut prototypel inheritance
Lalu kenapa didalam JavaScript itu tidak memakai class malah memakai prototype ,itu karena JavaScript ini adalah sebuah Bahasa yang waktu pembuatan nya itu sangat singkat hanya dalam 1 minggu jadi awal nya JavaScript tidak punya konsep class walaupun belum lama ini sudah mempunyai nya Kita coba versi class
class mahasiswa {
constructur(nama,energi){
this.nama = nama;
this.energi = energi;
}
makan = function(porsi) {
this.energi += porsi;
return `hallo ${this.nama} selamat makan`
}
Ini versi class nya lalu kenapa Kita memakai prototype kalau Kita bisa memakai class ,itu karena sebenarnya yang di jalanin itu yang prototype sama aja ,menurut saya kaklian harus paham konsep yang sebetulnya terjadi. Begitu kalian mau pindah pake class gapapa asalkan kalian Tau dibelakang layar prototype lah yang terjadi.
Komentar
Posting Komentar