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