В реальной жизни все что нас окружает является объектам. Например, машина.
У машины есть свойства — вес и цвет, и методы — поехать и остановиться:
Объект | Свойства | Методы |
---|---|---|
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 | Петров |
age | 50 |
eyeColor | голубые |
Обратиться к свойству объекта можно двумя способами:
имяОбъекта.имяСвойства
или
имяОбъекта["имяСвойства"]
Пример 1:
person.lastName;
Пример 2:
person["lastName"];
Методы объектов
Помимо свойств у объектов так же могут быть методы.
Методы - это действия, которые могут быть выполнены с объектом.
Методы хранятся в свойствах в виде определений функций.
Свойство | Значение |
---|---|
firstName | Иван |
lastName | Петров |
age | 50 |
eyeColor | голубые |
fullName | function() {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. Они усложняют код скрипта и замедляют скорость его работы.
Подробнее об объектах будет рассказано в последующих главах этого учебника.