JavaScript Объекты
В JavaScript объекты являются королями. Если вы разбираетесь в объектах, вы понимаете JavaScript.
В JavaScript почти "всё" является объектом.
- Логические (булевы) значения могут быть объектами (если они определены с помощью ключевого слова
new
) - Числа могут быть объектами (если они определены с помощью ключевого слова
new
) - Строки могут быть объектами (если они определены с помощью ключевого слова
new
) - Даты всегда являются объектами
- Математика - это всегда объекты
- Регулярные выражения всегда являются объектами
- Массивы всегда являются объектами
- Функции всегда являются объектами
- Объекты всегда являются объектами
Все значения JavaScript, кроме примитивов, являются объектами.
JavaScript Примитивы
Примитивное значение - это значение, не имеющее свойств или методов.
Примитивный тип данных - это данные с примитивным значением.
JavaScript определяет 5 типов примитивных типов данных:
string
number
boolean
null
undefined
Примитивные значения неизменяемы (они жестко запрограммированы и поэтому не могут быть изменены).
если x = 3.14, вы можете изменить значение x. Но вы не можете изменить значение 3.14.
Значение | Тип | Коментарий |
---|---|---|
"Hello" | string | "Hello" всегда "Hello" |
3.14 | number | 3.14 всегда 3.14 |
true | boolean | true всегда true |
false | boolean | false всегда false |
null | null (объект) | null всегда null |
undefined | undefined | undefined всегда undefined |
Объекты - это переменные
Переменные JavaScript могут содержать одиночные значения:
JavaScript переменные также могут содержать множество значений.
Объекты тоже переменные. Но объекты могут содержать много значений.
Значения объекта записываются в виде пар имя: значение (имя и значение, разделенные двоеточием).
JavaScript объект - это коллекция именованных значений.
Обычно объекты объявляются с помощью ключевого слова const
.
Пример
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Попробуйте сами »
Свойства объекта
Именованные значения в JavaScript объектах называются свойствами.
Свойство | Значение |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
Объекты, записанные как пары имя-значение, похожи на:
- Ассоциативные массивы в PHP
- Словари на Python
- Хеш-таблицы на C
- Хеш-карты в Java
- Хеши на Ruby и Perl
Методы объекта
Методы - это действия, которые можно выполнять с объектами.
Свойства объекта могут быть как примитивными значениями, так и другими объектами и функциями.
Метод объекта - это свойство объекта, содержащее определение функции.
Свойство | Значение |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return 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; // Не будет создавать копию человека
Объект x - не копия человека. Это это человек. И x, и person - один и тот же объект.
Любые изменения в x также изменят person, потому что x и person являются одним и тем же объектом.
Пример
const person = {
firstName:"John",
lastName:"Doe",
age:50, eyeColor:"blue"
}
const x = person;
x.age = 10; // Изменит как x.age, так и person.age
Попробуйте сами »