JavaScript Прототипы объекта
Все объекты JavaScript наследуют свойства и методы от прототипа.
В предыдущей главе мы узнали, как использовать конструктор объекта:
Пример
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
var myFather = new Person("Щипунов", "Андрей", 50, "зеленый");
var myMother = new Person("Щипунова", "Татьяна", 43, "синий");
Попробуйте сами »
Мы также узнали, что вы не можете добавить новое свойство к существующему конструктору объекта:
Чтобы добавить новое свойство в конструктор, вы должны добавить его в функцию конструктора:
Пример
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "Russian";
}
Попробуйте сами »
Наследование прототипа
Все объекты 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 = "Russian";
Попробуйте сами »
Свойство 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.