English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы JavaScript

Объекты JavaScript

Функции JavaScript

JS HTML DOM

JS Браузер BOM

Основы AJAX

JavaScript Референс Мануал

Объект прототипа JavaScript

ПрототипЭто механизм, через который объекты JavaScript наследуют характеристики друг от друга.

В предыдущей главе мы学习了, как использоватьКонструктор:

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
}
var Seagull = new User("Seagull", "Anna", 22, "New Delhi");
var tarush = new User("Tarush", "Balodhi", 34, "Bihar");
Проверьте, посмотрите‹/›

Мы также узналиНельзяДобавление нового атрибута к существующему конструктору объекта:

User.weapon = "Sword";
Проверьте, посмотрите‹/›

Чтобы добавить новый атрибут в конструктор, его необходимо добавить в сам конструктор:

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
   this.weapon = "Sword";
}
Проверьте, посмотрите‹/›

Иногда мы хотим добавить новые свойства и методы к конструктору позже, который будет делиться между всеми объектами (примерами). Ответ - объектПрототип.

Использование свойства prototype

Свойство prototype позволяет вам добавлять свойства и методы к конструктору.

В этом примере, свойство prototype позволяет вам добавить новые свойства к конструктору объекта User:

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
}
User.prototype.weapon = "Sword";
Проверьте, посмотрите‹/›

В этом примере, свойство prototype позволяет вам добавить новые методы к конструктору объекта User:

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
}
User.prototype.fullName = function() {
return this.firstName + " " + this.lastName;
};
Проверьте, посмотрите‹/›

Примечание:Обратите внимание: только изменяйте свои прототипы. Не изменяйте прототипы стандартных (внутренних) объектов JavaScript.