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

Postingan populer dari blog ini

ethical hacking part 14 membuat malware Trojan

CSS layouting - box model: CSS reset

ethical hacking part 3 reconnaissance & information gethering