JavaScript Урок 33 Пользовательские Объекты
Пользовательские объекты удобно использовать для того, чтобы организовывать информацию.
 |
Примеры
|
Создание прямого экземпляра объекта
Создание шаблона для объекта
Объекты JavaScript
В предыдущих уроках JavaScript вы видели, что имеется несколько встроенных объектов, например String, Date, Array, и другие. В дополнение к этим встроенным объектам, вы также можете создавать свои собственные.
Объект это специальный вид данных с набором свойств и методов.
Давайте проиллюстрируем это на примере: Персона (person) - это объект. Свойства - это значения, ассоциированные с объектом. Свойства персоны включают имя, рост, вес, возраст, цвет кожи, цвет глаз, и т.д. Все персоны имеют эти свойства, но значения этих свойств будут различаться от одной персоны к другой. Объекты также имеют методы. Методы - это действия, которые могут быть выполнены над объектами. Методы персоны могут включать eat() - есть, sleep() - спать, work() - работать, play() - играть, и т.д.
Свойства
Синтаксис доступа к свойству объекта:
Вы можете добавлять свойство к объекту, просто придавая ему значение. Предположим, что объект personObj уже существует - вы можете задать для него свойства firstname (имя), lastname (фамилия), age (возраст), и eyecolor (цвет глаз) следующим образом:
personObj.firstname="Вася";
personObj.lastname="Иванов";
personObj.age=30;
personObj.eyecolor="карие";
document.write(personObj.firstname); |
Код выше сгенерирует следующий вывод:
Методы
Объект также может включать методы.
Вы можете вызывать метод, используя следующий синтаксис:
Замечание: Параметры, передаваемые методу, заключаются в курглые скобки.
Пример вызова метода sleep() объекта personObj:
Создание Ваших Собственных Объектов
Есть три различных способа создания объекта:
1. Создание прямого экземпляра объекта
Следующий код создает новый экземпляр объекта, и добавляет к нему четыре свойства:
personObj=new Object();
personObj.firstname="Вася";
personObj.lastname="Иванов";
personObj.age=30;
personObj.eyecolor="карие"; |
альтернативный синтаксис (использование объектных литералов):
personObj={firstname:"Вася",lastname:"Иванов",age:30,eyecolor:"карие"}; |
Добавить метод к объекту personObj также просто. Следующий код добавляет метод с названием eat() к объекту personObj:
2. Создание конструктора объекта
Создаем функцию, которая инициализирует объекты:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
} |
Внутри функции вы должны присвоить значения свойствам используя конструкцию this.ИмяСвойства. Причина такого синтаксиса в том, что вы собираетесь использовать более одного экземпляра объекта (персоны) одновременно (и должно быть понятно, с каким конкретно объектом вы имеете дело). Поэтому слово "this" указывает на конкретный - текущий объект, свойства которого вы инициализируете в конструкторе.
Как только вы написали конструктор объекта, вы можете создавать новые экземпляры объекта, например:
var myFather=new person("Вася","Иванов",30,"карие");
var myMother=new person("Света","Захарова",28,"зеденые"); |
Вы также можете добавить несколько методов к объекту person. Это делается внутри функции:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.newlastname=newlastname;
} |
Заметьте, что методы - это обычные функции, прикрепленные к объектам. Далее мы должны написать тело функции newlastname():
function newlastname(new_lastname)
{
this.lastname=new_lastname;
} |
Функция newlastname() получает в качестве параметра новую фамилию персоны и присваивает ее этой персоне. JavaScript знает, о какой персоне идет речь, посредством использования слова "this.". Таким образом, теперь вы можете написать: myMother.newlastname("Иванова").
|