JavaScript Прототипи об’єктів
Всі об’єкти JavaScript успадковують властивості та методи від прототипу.
В попередньому розділі ми дізнались, як використовувати конструктор об’єкту:
Приклад
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");
Спробуйте самі »
Ви також дізнались, що ви не можете додавати нову властивість до існуючого конструктора об’єкту:
Щоб додати нову властивість в конструктор, ви маєте додати її в функцію конструктора:
Приклад
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English";
}
Спробуйте самі »
Успадкування прототипу
Всі об’єкти JavaScript успадковують властивості та методи від прототипу:
Date
об’єкти успадковують відDate.prototype
Array
об’єкти успадковують відArray.prototype
Person
об’єкти успадковують відPerson.prototype
Object.prototype
знаходиться в верхній частині ланцюжка успадкування прототипів:
Об’єкти Date
, об’єкти Array
та об’єкти Person
успадковуються із Object.prototype
.
Додавання властивостей та методів до об’єктів
Іноді вам необхідно додати нові властивості (або методи) до всіх існуючих об’єктів даного типу.
Іноді ви хочете додати нові властивості (або методи) в конструктор об’єкту.
Використання властивості prototype
JavaScript властивість prototype
дозволяє додавати нові властивості в конструктори об’єктів:
Приклад
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
Person.prototype.nationality = "English";
Спробуйте самі »
JavaScript властивість prototype
також дозволяє додавати нові методи в конструктори об’єктів:
Приклад
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;
};
Спробуйте самі »
Змінюйте лише свої власні прототипи. Ніколи не змінюйте прототипи стандартних об’єктів JavaScript.