Prototipe Objek JavaScript
Semua objek JavaScript mewarisi properti dan metode dari prototipe.
Pada bab sebelumnya kita telah mempelajari cara menggunakan konstruktor objek :
Contoh
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
const myFather = new Person("John", "Doe", 50, "blue");
const myMother = new Person("Sally", "Rally", 48, "green");
Kami juga mengetahui bahwa Anda tidak dapat menambahkan properti baru ke konstruktor objek yang ada:
Contoh
Person.nationality = "English";
Untuk menambahkan properti baru ke konstruktor, Anda harus menambahkannya ke fungsi konstruktor:
Contoh
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Warisan Prototipe
Semua objek JavaScript mewarisi properti dan metode dari prototipe:
Date
benda-benda yang diwarisi dariDate.prototype
Array
benda-benda yang diwarisi dariArray.prototype
Person
benda-benda yang diwarisi dariPerson.prototype
Itu Object.prototype
ada di bagian atas rantai pewarisan prototipe:
Date
objek, Array
objek, dan Person
objek mewarisi dari Object.prototype
.
Menambahkan Properti dan Metode ke Objek
Terkadang Anda ingin menambahkan properti (atau metode) baru ke semua objek yang ada dari tipe tertentu.
Terkadang Anda ingin menambahkan properti (atau metode) baru ke konstruktor objek.
Menggunakan properti prototipe
Properti JavaScript prototype
memungkinkan Anda untuk menambahkan properti baru ke konstruktor objek:
Contoh
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Properti JavaScript prototype
juga memungkinkan Anda untuk menambahkan metode baru ke konstruktor objek:
Contoh
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
return this.firstName + " " + this.lastName;
};
Hanya memodifikasi prototipe Anda sendiri . Jangan pernah memodifikasi prototipe objek JavaScript standar.