JavaScript Объекты
Реальные объекты, свойства и методы
В реальной жизни автомобиль - это объект.
Автомобиль имеет такие свойства, как вес и цвет, а также такие методы, как старт и остановка:
Объект | Свойства | Методы |
---|---|---|
car.name = Fiat car.model = 500 car.weight = 850kg car.color = white |
car.start() car.drive() car.brake() car.stop() |
Все автомобили имеют одинаковые свойства, но значения свойств отличаются в разных автомобилей.
Все автомобили имеют одинаковые методы, но методы выполняются в разное время.
JavaScript Объекты
Вы уже узнали, что JavaScript переменные являются контейнерами для значений данных.
Этот код назначает простое значение (Fiat) переменной с именем car:
var car = "Fiat";
Попробуйте сами »
Объекты тоже переменные. Но объекты могут содержать много значений.
Этот код назначает много значений (Fiat, 500, белый) для переменной с именем car:
var car = {type:"Fiat", model:"500", color:"white"};
Попробуйте сами »
Значения записываются в виде пар имя:значение (имя и значение разделяются двоеточием).
Объекты JavaScript являются контейнерами для именованных значений, называемых свойствами или методами.
Определение объекта
Вы определяете (и создаете) объект JavaScript с литералом объекта:
Пробелы и разрывы строк не важны. Определение объекта может занимать несколько строк:
Пример
var person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
Попробуйте сами »
Свойства объекта
Пары name:values в объектах JavaScript называются свойствами:
Свойство | Значение свойства |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
Доступ к свойствам объекта
Вы можете получить доступ к свойствам объекта двумя способами:
objectName.propertyName
или
objectName["propertyName"]
Методы объекта
Объекты также могут иметь методы.
Методы - это действия, которые можно выполнять над объектами.
Методы хранятся в свойствах, как определения функций.
Свойство | Значение свойства |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
Метод - это функция, хранящаяся как свойство.
Пример
var person = {
firstName: "John",
lastName : "Doe",
id : 5566,
fullName : function() {
return this.firstName + " " + this.lastName;
}
};
Ключевое слово this
В определении функции this
ссылается на "владельца" функции.
В приведенном выше примере this
является персональным объектом, который "владеет" функцией fullName
.
Другими словами, this.firstName
означает свойство firstName
этого объекта.
Подробнее о ключевом слове this
читайте в разделе JS Ключевое слово this.
Доступ к методам объекта
Вы получаете доступ к методам объекта со следующим синтаксисом:
objectName.methodName()
Если вы обращаетесь к методу без скобок (), он вернёт определение функции:
Не объявляйте строки, числа и логические значения как объекты!
Когда переменная JavaScript объявляется с ключевым словом "new
", переменная создается как объект:
var x = new String(); // Объявляет x как объект String (строка)
var y = new Number(); // Объявляет y как объект Number (число)
var z = new Boolean(); // Объявляет z как объект Boolean (логический)
Избегайте объектов типа String
, Number
и Boolean
. Они усложняют ваш код и замедляют скорость выполнения.
Вы узнаете больше об объектах позже в этом учебнике на нашем сайте W3Schools на русском.