Объекты JavaScript
В JavaScript объекты — это главное. Если вы понимаете объекты, вы понимаете JavaScript.
В JavaScript почти "все" является объектом.
- Логические значения могут быть объектами (если определены с помощью
new
ключевого слова) - Числа могут быть объектами (если определены
new
ключевым словом) - Строки могут быть объектами (если определены
new
ключевым словом) - Даты всегда являются объектами
- Математика всегда объекты
- Регулярные выражения всегда являются объектами
- Массивы всегда являются объектами
- Функции всегда являются объектами
- Объекты всегда являются объектами
Все значения JavaScript, кроме примитивов, являются объектами.
JavaScript-примитивы
Примитивное значение — это значение, не имеющее свойств или методов.
Примитивный тип данных — это данные, имеющие примитивное значение.
JavaScript определяет 5 типов примитивных типов данных:
string
number
boolean
null
undefined
Примитивные значения неизменяемы (они жестко запрограммированы и поэтому не могут быть изменены).
если x = 3,14, вы можете изменить значение x. Но вы не можете изменить значение 3.14.
Ценность | Тип | Комментарий |
---|---|---|
"Привет" | нить | "Привет" всегда "Привет" |
3.14 | номер | 3,14 всегда 3,14 |
истинный | логический | правда всегда правда |
ложный | логический | ложь всегда ложь |
нулевой | ноль (объект) | ноль всегда ноль |
неопределенный | неопределенный | неопределенный всегда неопределенный |
Объекты являются переменными
Переменные JavaScript могут содержать одиночные значения:
Пример
let person = "John Doe";
Переменные JavaScript также могут содержать множество значений.
Объекты тоже переменные. Но объекты могут содержать множество значений.
Значения объекта записываются в виде пар имя : значение (имя и значение разделены двоеточием).
Пример
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Объект JavaScript представляет собой набор именованных значений .
Общепринятой практикой является объявление объектов с помощью const
ключевого слова.
Пример
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Свойства объекта
Именованные значения в объектах JavaScript называются свойствами .
Имущество | Ценность |
---|---|
имя | Джон |
фамилия | Доу |
возраст | 50 |
цвет глаз | синий |
Объекты, записанные в виде пар имя-значение, похожи на:
- Ассоциативные массивы в PHP.
- Словари в Python
- Хэш-таблицы в C
- Хэш-карты в Java
- Хэши в Ruby и Perl
Методы объекта
Методы — это действия , которые можно выполнять над объектами.
Свойства объекта могут быть как примитивными значениями, другими объектами, так и функциями.
Метод объекта — это свойство объекта, содержащее определение функции .
Имущество | Ценность |
---|---|
имя | Джон |
фамилия | Доу |
возраст | 50 |
цвет глаз | синий |
полное имя | function() {возвратите this.firstName + " " + this.lastName;} |
Объекты JavaScript — это контейнеры для именованных значений, называемых свойствами и методами.
Вы узнаете больше о методах в следующих главах.
Создание объекта JavaScript
С помощью JavaScript вы можете определять и создавать свои собственные объекты.
Существуют различные способы создания новых объектов:
- Создайте один объект, используя литерал объекта.
- Создайте один объект с ключевым словом
new
. - Определите конструктор объекта, а затем создайте объекты сконструированного типа.
- Создайте объект с помощью
Object.create()
.
Использование литерала объекта
Это самый простой способ создать объект JavaScript.
Используя объектный литерал, вы и определяете, и создаете объект в одном операторе.
Литерал объекта — это список пар имя:значение (например, age:50) внутри фигурных скобок {}.
В следующем примере создается новый объект JavaScript с четырьмя свойствами:
Пример
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Пробелы и переносы строк не важны. Определение объекта может занимать несколько строк:
Пример
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
В этом примере создается пустой объект JavaScript, а затем добавляются 4 свойства:
Пример
const person = {};
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Использование ключевого слова JavaScript new
В следующем примере создается новый объект JavaScript с помощью new Object()
, а затем добавляются 4 свойства:
Пример
const person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
Примеры выше делают то же самое.
Но нет необходимости использовать new Object()
.
Для удобочитаемости, простоты и скорости выполнения используйте литеральный метод объекта.
Объекты JavaScript изменяемы
Объекты изменяемы: к ним обращаются по ссылке, а не по значению.
Если человек является объектом, следующий оператор не создаст копию человека:
const x = person; // Will not create a copy of person.
Объект x не является копией человека. Это человек . И x, и person являются одним и тем же объектом.
Любые изменения в x также изменят человека, потому что x и человек — это один и тот же объект.
Пример
const person = {
firstName:"John",
lastName:"Doe",
age:50, eyeColor:"blue"
}
const x = person;
x.age = 10; // Will change both x.age and person.age