Advance JavaScript 2 - prototype part 2 object.create

Advance JavaScript 2 -  prototype part 2 object.create

Sebelum Kita Masuk kedalam object.create Kita ingat ingat lagi materi di artikel sebelum nya ,yaitu object literal adalah yang paling simpel untuk membuat object ,Tapi itu digunakan jika kalau object yang kalian mau buat itu cuma satu kalau banyak ini tidak di rekomendasikan Karena akan banyak memakai resource jadi problem memakai object literal ini yaitu tidak efektif untuk object yang banyak.

kalau menggunakan function declaration ini Kita bisa mengeliminasi problem yang tadi Karena Kita itu cuma bikin template nya sekali (bikin object nya sekali)  manggil nya bisa berkali Kali, tetapi dengan mmemakai Cara ini pun ketika Kita melakukan intansiasi pada object nya itu ternyata dibelakang layar 2 method itu tetap dibuat ,mau di pake atau enggak tetap di buat Dan disimpan kedalam memori ternyata sama saja dengan object literal.



Ada solusinya kalau mau lebih efektif yaitu caranya dengan membuat object terpisah Dan object terpisah nya berisi method nya 




const methodemahasiswa {
makan = function(porsi) {
this.energi += porsi;
console.log(`hallo ${this.nama}, selamat makan`);
}

main = function (jam) {
this.energi -= jam;
console.log(`hallo {this.nama} selamat makan`);
}
{

function mahasiswa(nama,energi){
let mahasiswa = {}
mahasiswa.nama = nama;
mahasiswa.energi = energi;
mahasiswa.makan = methodemahasiswa.makan;
mahasiswa.main = methodemahasiswa.main;
return mahasiswa

}

let gimasn = mahasiswa("gimasn", 20)



kalau nama mgambil dari parameter ,energi mgambil dari parameter ,Dan kalau makan/main mgambil dari object lain ,ini kelihatan nya lebih efektif walaupun masih Ada problem yaitu kalau Kita bikin lagi sebuah method maka Kita harus tangkap lagi di methods mahasiswa nya artinya Kita malah mengelola 2 object sekarang ,walaupun Kita bisa tidak mendaftarkan manual method tersebut yaitu dengan object.create sintak nya sama Kaya tadi cuma Kita tambahkan object.create(methodmahasiswa) di variable mahasiswa nya


const methodemahasiswa {
makan = function(porsi) {
this.energi += porsi;
console.log(`hallo ${this.nama}, selamat makan`);
}

main = function (jam) {
this.energi -= jam;
console.log(`hallo {this.nama} selamat makan`);
}
{

function mahasiswa(nama,energi){
let mahasiswa = object.create(methodmahasiswa);

mahasiswa.nama = nama;
mahasiswa.energi = energi;

return mahasiswa

}

let gimasn = mahasiswa("gimasn", 20)

Dengan ini Kita tidak perlu mendaftarkan atau mendefinisikan method makan Dan main ,Karena sudah dibawa oleh object.create



Sebetulnya Ada satu Cara yang lebih efektif yang memungkinkan kalian tidak membuat object yang lain yaitu dengan prototype, Kita akan membahas ini di artikel terpisah.

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