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