Прототипы объектов JavaScript
- Предыдущая страница Конструкторы JS объектов
- Следующая страница Ссылки на JS объекты
Все объекты JavaScript наследуют свойства и методы от прототипа.
В предыдущей главе мы学习了, как использоватьКонструктор объекта:
Пример
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");
Мы уже осознали, что выНевозможноДобавление нового атрибута к конструктору существующего объекта:
Пример
Person.nationality = "English";
Чтобы добавить новый атрибут к конструктору, его необходимо добавить в функцию конструктора:
Пример
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
Прототипное наследование
Все объекты JavaScript наследуют свойства и методы от прототипа.
Объекты даты наследуются от Date.prototype. Массивы наследуются от Array.prototype. Объекты Person наследуются от Person.prototype.
Object.prototype находится на вершине цепочки прототипного наследования:
Объекты даты, массивы и объекты Person наследуются от Object.prototype.
Добавление свойств и методов к объектам
Иногда вы хотите добавить новый атрибут (или метод) ко всем объектам определенного типа.
Иногда вы хотите добавить новые атрибуты (или методы) к объектным конструкторам.
Использование prototype
Атрибуты
Прототип JavaScript позволяет добавлять новые атрибуты к объектным конструкторам:
Пример
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } Person.prototype.nationality = "English";
Прототип JavaScript также позволяет добавлять новые методы к объектным конструкторам:
Пример
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; };
Модифицируйте толькоВы самиprototype. Никогда не изменяйте prototype стандартных объектов JavaScript.
- Предыдущая страница Конструкторы JS объектов
- Следующая страница Ссылки на JS объекты