Объекты Javascript

В реальной жизни все что нас окружает является объектам. Например, машина.

У машины есть свойства — вес и цвет, и методы — поехать и остановиться:

ОбъектСвойстваМетоды
Машина

car.name = Fiat

car.model = 500

car.weight = 850kg

car.color = white

car.start()

car.drive()

car.brake()

car.stop()

У всех машин одни и те же свойства, однако значения этих свойств у разных машин разные.

У всех машин одни и те же методы, однако эти методы выполняются в разное время.

Объекты JavaScript

Вы уже знаете, что переменные в JavaScript это контейнеры для хранения данных.

В следующем коде переменной с именем car присваивается простое значение "Fiat":


var car = "Fiat"; 

Объекты это тоже переменные. Однако объекты могут хранить несколько значений.

В следующем коде переменной с именем car присваивается несколько значений (Fiat, 500, white):


var car = {type:"Fiat", model:"500", color:"white"}; 

Здесь значения записываются в виде пар имя:значение (имя и значение разделяются двоеточием).

Объекты в JavaScript это контейнеры для именованных значений, которые называются свойства или методы.

Создание объектов

Объекты в JavaScript определяются (создаются) при помощи фигурных скобок:


var person = {firstName:"Иван", lastName:"Петров", age:50, eyeColor:"голубые"};

Пробелы и переводы строки не имеют значения. Определение объекта может занимать несколько строк:


var person = {
    firstName:"Иван",
    lastName:"Петров",
    age:50,
    eyeColor:"голубые"
}; 

Свойства объекта

Пары имя:значение в объектах JavaScript называются свойствами:

СвойствоЗначение
firstNameИван
lastNameПетров
age50
eyeColorголубые

Обратиться к свойству объекта можно двумя способами:


имяОбъекта.имяСвойства

или

имяОбъекта["имяСвойства"]

Пример 1:


 person.lastName; 

Пример 2:


 person["lastName"]; 

Методы объектов

Помимо свойств у объектов так же могут быть методы.

Методы - это действия, которые могут быть выполнены с объектом.

Методы хранятся в свойствах в виде определений функций.

СвойствоЗначение
firstNameИван
lastNameПетров
age50
eyeColorголубые
fullNamefunction() {return this.firstName + " " + this.lastName;}

Таким образом, метод - это функция, хранящаяся как свойство объекта.


var person = {
    firstName: "Иван",
    lastName : "Петров",
                id : 5566,
    fullName : function() {
        return this.firstName + " " + this.lastName;
}; 

Ключевое слово this

В коде функции ключевое слово this ссылается на "владельца" этой функции.

В приведенном выше примере ключевое слово this указывает на объект person, который "владеет" функцией fullName. Другими словами выражение this.firstName означает свойство firstName, принадлежащее данному объекту.

Обращение к методам объекта

Обратиться к методу объекта можно следующим образом:


имяОбъекта.имяМетода()

Пример:


 name = person.fullName();

Если вы обратитесь к методу без скобок (), то выражение вернет определение функции:


name = person.fullName;

Не декларируйте строки, числа и логические типы как объекты!

В JavaScript если переменная декларируется с ключевым словом "new", то в этой переменной будет создан объект:


var x = new String();   // Переменная x декларируется как объект String
var y = new Number();   // Переменная y декларируется как объект Number
var z = new Boolean();  // Переменная z декларируется как объект Boolean

Старайтесь избегать создание объектов String, Number и Boolean. Они усложняют код скрипта и замедляют скорость его работы.

Подробнее об объектах будет рассказано в последующих главах этого учебника.