Каждый объект JavaScript имеет прототип. Прототип также является объектом.
Все объекты JavaScript наследуют свойства и методы от своего прототипа.
JavaScript Прототипы
Все объекты JavaScript наследуют свойства и методы от своего прототипа.
Объекты , созданные с помощью литерала объекта, или с new Object() , наследуют от прототипа под названием Object.prototype.
Объекты , созданные с помощью new Date() наследуют Date.prototype.
Object.prototype находится на вершине цепи прототипов.
Все объекты JavaScript (Date, Array, RegExp, Function, ....) наследуют от Object.prototype .
Создание прототипа
Стандартный способ создания объекта-прототипа является использование функции конструктора объекта:
пример
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
}
С помощью функции конструктора, вы можете использовать new ключевое слово , чтобы создать новые объекты из того же прототипа:
пример
var myFather = new Person("John", "Doe", 50, "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
Попробуй сам " Функция конструктора является прототипом для Person объектов.
Это считается хорошей практикой функции имя конструктора с прописной первой буквой.
Добавление свойств и методов к объектам
Иногда вы хотите добавить новые свойства (или методы) к существующему объекту.
Иногда вы хотите добавить новые свойства (или методы) для всех существующих объектов данного типа.
Иногда вы хотите добавить новые свойства (или методы) к прототипу объекта.
Добавление свойства к объекту
Добавление нового свойства к существующему объекту легко:
Свойство будет добавлено к myFather . Не myMother . Не к любым другим объектам человека.
Добавление метода к объекту
Добавление нового метода к существующему объекту также легко:
Метод будет добавлен к myFather . Не myMother .
Добавление свойств к Prototype
Вы не можете добавить новое свойство к прототипу таким же образом, как вы добавляете новое свойство существующего объекта, потому что прототип не существующий объект.
Чтобы добавить новое свойство в конструктор, необходимо добавить его в функцию конструктора:
пример
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.nationality = "English"
}
Попробуй сам " свойства прототипа может иметь значения прототипа (значения по умолчанию).
Добавление методов в качестве прототипа
Ваша функция конструктор может также определить методы:
пример
function Person(first, last, age, eyecolor) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eyecolor;
this.name = function() {return this.firstName + " " + this.lastName;};
}
Попробуй сам " Использование 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 также позволяет добавлять новые методы в существующий прототип:
пример
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.