Последние учебники веб-разработки
×

JS Руководство

JS ГЛАВНАЯ JS Введение JS Куда JS Вывод JS Синтаксис JS Заявления JS Комментарии JS переменные JS операторы JS арифметика JS присваивание JS Типы данных JS функции JS Объекты JS Объем JS Мероприятия JS Строки JS Методы струнных JS чисел JS Методы Number JS математический JS Даты JS Форматы даты JS Методы Дата JS Массивы JS Методы массивов JS Booleans JS Сравнения JS условия JS переключатель JS петля For JS В то время как Loop JS Ломать JS Тип преобразования JS RegExp JS ошибки JS отладка JS Подъемно JS Строгий режим JS Гид по стилю JS Лучшие практики JS Ошибки JS Представление JS Зарезервированные слова JS JSON

JS формы

Формы проверки Формы API

JS объект

Определения объектов Свойства объекта Методы объекта Прототипы объектов

JS функции

Определения функций Функциональные параметры Функция Призвание Функция Затворы

JS HTML DOM

DOM вступление DOM методы DOM Документ DOM элементы DOM HTML DOM CSS DOM Анимации DOM Мероприятия DOM EventListener DOM навигация DOM Вершины DOM Nodelist

JS браузер BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Примеры

JS Примеры JS HTML DOM JS HTML вход JS HTML Объекты JS HTML Мероприятия JS браузер JS викторина JS Резюме

JS Рекомендации

JavaScript Объекты HTML DOM Объекты


 

JavaScript Прототипы объектов


Каждый объект 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.nationality = "English";
Попробуй сам "

Свойство будет добавлено к myFather . Не myMother . Не к любым другим объектам человека.


Добавление метода к объекту

Добавление нового метода к существующему объекту также легко:

пример

myFather.name = function () {
    return this.firstName + " " + this.lastName;
};
Попробуй сам "

Метод будет добавлен к myFather . Не myMother .


Добавление свойств к Prototype

Вы не можете добавить новое свойство к прототипу таким же образом, как вы добавляете новое свойство существующего объекта, потому что прототип не существующий объект.

пример

Person.nationality = "English";
Попробуй сам "

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

пример

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.