JavaScript Определение объекта
В JavaScript объекты - король. Если вы разбираетесь в объектах, вы понимаете JavaScript.
В JavaScript почти "все" является объектом.
- Логические значения могут быть объектами (если они определены с помощью
newключевого слова) - Числа могут быть объектами (если они определены с помощью
newключевого слова) - Строки могут быть объектами (если они определены с помощью
newключевого слова) - Даты - это всегда объекты
- Математика - это всегда объекты
- Регулярные выражения всегда являются объектами
- Массивы всегда являются объектами
- Функции всегда являются объектами
- Объекты всегда объекты
Все значения JavaScript, кроме примитивов, являются объектами.
Примитивы JavaScript
Примитивным значением является значение, которое не имеет свойств или методов.
Примитивный тип данных представляют собой данные, которые имеют элементарное значение.
JavaScript определяет 5 типов примитивных типов данных:
stringnumberbooleannullundefined
Примитивные значения неизменяемы (они жестко запрограммированы и поэтому не могут быть изменены).
если 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 называются свойствами.
| Свойство | Значение |
|---|---|
| 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. - Определите конструктор объекта, а затем создайте объекты сконструированного типа.
В ECMAScript 5 объект также может быть создан с помощью функции Object.create().
Использование литерала объекта
Это самый простой способ создать объект JavaScript.
Используя литерал объекта, вы одновременно определяете и создаете объект в одном заявлении.
Литерал объекта - это список пар имя: значение (например, age:50) в фигурных скобках {}.
В следующем примере создается новый объект JavaScript с четырьмя свойствами:
Пробелы и перенос строки не важны. Определение объекта может занимать несколько строк:
Пример
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";
Попробуйте сами »
Два приведенных выше примера делают то же самое. Нет необходимости использовать new Object().
Для простоты, удобочитаемости и скорости выполнения используйте первый (метод литерала объекта).
Объекты JavaScript изменяемы
Объекты изменчивы: к ним обращаются по ссылке, а не по значению.
Если person является объектом, следующее утверждение не создаст копию person:
var x = person; // Это не создаст копию person.
Объект x не является копией person. Это является person. И x, и person - один и тот же объект.
Любые изменения в x также изменят person, потому что x и person - один и тот же объект.
Пример
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // Это изменит как x.age, так и person.age
Попробуйте сами »
