Prototipe Objek JavaScript

Semua objek JavaScript mewarisi atribut dan method dari prototipe.

Dalam bab sebelumnya, kami belajar bagaimana untuk menggunakanConstructor objek:

Contoh

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
var myFather = new Person("Bill", "Gates", 62, "blue");
var myMother = new Person("Steve", "Jobs", 56, "green");

Coba sendiri

Kami telah mengenali, andaTidak dapatMenambahkan atribut baru kepada constructor objek yang sudah ada:

Contoh

Person.nationality = "English";

Coba sendiri

Untuk menambahkan atribut baru kepada constructor, maka harus ditambahkan ke fungsi constructor:

Contoh

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
    this.nationality = "English";
}

Coba sendiri

Penyelesaian Prototipe

Semua objek JavaScript mewarisi atribut dan method dari prototipe.

Objek tanggal mewarisi dari Date.prototype. Objek array mewarisi dari Array.prototype. Objek Person mewarisi dari Person.prototype.

Object.prototype berada di puncak rantai penyelesaian prototipe:

Objek tanggal, objek array, dan objek Person mewarisi dari Object.prototype.

Menambah atribut dan method kepada objek

Kadang, anda ingin menambah atribut (atau method) baru kepada semua objek yang sudah ada berdasarkan jenis yang diberikan.

Kadang-kadang, Anda ingin menambahkan properti baru (atau method) ke constructor objek.

Penggunaan Prototype Properti

Properti prototype JavaScript memungkinkan Anda menambahkan properti baru ke constructor objek:

Contoh

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";

Coba sendiri

Properti prototype JavaScript juga memungkinkan Anda menambahkan method baru ke constructor objek:

Contoh

function Person(first, last, age, eyecolor) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eyecolor;
}
Person.prototype.name = function() {
    kembalikan this.firstName + " " + this.lastName;
};

Coba sendiri

Silakan hanya mengubahAnda sendiri原型。Jangan pernah mengubah prototype objek JavaScript standar.