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
Posting Komentar