Объекты
Объектом называется структура, имеющая свойства (properties), представляющие собой переменные JavaScript или другие объекты. Функции, ассоциированные с объектом, называются методами объекта. Обращение к свойствам и методам осуществляется просто: objectName.propertyName objectName.methodName
Все имена чувствительны к регистру.
Если объект с названием house имеет свойства bedrooms, bathrooms, floors и squareFeet, вы можете обращаться к их значениям:
house.bedrooms house.bathrooms house.floors house.squareFeet
Другим способом представления объектов является запись их как массивов:
house["bedrooms"] house["bathrooms"] house["floors"] house["squareFeet"]
Этот же объект может быть представлен в JavaScript и как обычный массив:
house[0] house[1] house[2] house[3]
Такой тип взаимоотношений между индексами и строками называется ассоциативным массивом. Создание нового объекта требует вызова функции-конструктора объекта. Например, следующая функция должна создавать новый экземпляр объекта house:
function House(bedrooms, bathrooms, floors, squareFeet) { this.bedrooms - bedrooms; this.bathrooms - bathrooms; } this.floors - floors; this.squareFeet = squareFeet }
Теперь, когда объект определен, его экземпляр создается с помощью оператора new.
5OOSouth5th = new House (2, 1, 1, 1700)
В определение объекта могут быть включены другие объекты. Например, объект с названием owner имеет свойства name, age, mortgageLength.
function Owner(name, age, mortgageLength) { this.name = name; this.age = age; this.mortgageLength = mortgageLength }
Добавление дополнительного аргумента и строки кода в функцию Hous'e добавляет объект owner к объекту house:
function House(bedrooms, bathrooms, floors, squareFeet, owner) {
this.bedrooms = bedrooms; this.bathrooms = bathrooms; this.floors = floors; this.squareFeet = squareFeet; this.owner = owner }
Новый экземпляр объекта owner (Glenn Woodson, 38 лет, со сроком закладной в 20 лет), представленный переменной G_Woodson, включен в объект house:
G_Woodson = new Owner("Glenn Woodson",38,20); 5OOSouth5th = new House(2, 1, 1, 1700, G__Woodson)
Свойства объекта G_Woodson включены в объект 5OOSouth5th:
5OOSouth5th.bedrooms 5OOSouth5th.bathrooms 5OOSouth5th.floors 5OOSouth5th.squareFeet 5OOSouthSth.G_Woodson.name 5OOSouth5th.G_Woodson.age 5OOSouth5th.G_Woodson.mortgageLength