ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Введение JS Установка JS Вывод JS Объявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строки JS Числа JS Методы числа JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл While JS Прерывание JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Подъём JS Строгий режим JS Ключевое слово this JS Ключевое слово Let JS Ключевое слово Const JS Функции стрелок JS Классы JS Отладка JS Гид по стилю JS Лучшие практики JS Ошибки JS Производительность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS JSON

JS Формы

JS Формы Формы API

JS Объекты

Определения объектов Свойства объекта Методы объекта Доступ к объектам Конструкторы объектов Прототипы объектов Объект ECMAScript 5

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Объектная модель браузера BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Броузер JS Упражнения JS Викторина JS Сертификат

JS Справочники

JavaScript Объекты HTML DOM Объекты

JavaScript. Уроки для начинающих

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.14number3.14 является всегда 3.14
truebooleantrue является всегда true
falsebooleanfalse является всегда false
nullnull (object)null является всегда null
undefinedundefinedundefined является всегда undefined

Объекты являются переменными

Переменные JavaScript могут содержать отдельные значения:

Пример

var person = "John Doe";
Попробуйте сами »

Объекты тоже переменные. Но объекты могут содержать много значений.

Значения записываются в виде пар имя: значение (имя и значение разделяются двоеточием).

Пример

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

Методы объекта

Методы - это действия, которые можно выполнять над объектами.

Свойства объекта могут быть как примитивными значениями, другими объектами, так и функциями.

Метод объекта - это свойство объекта, содержащее определение функции.

Свойство Значение
firstName John
lastName Doe
age 50
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

Объекты JavaScript - это контейнеры для именованных значений, называемых свойствами и методами.

Вы узнаете больше о методах в следующих главах.


Создание объекта JavaScript

С помощью JavaScript вы можете определять и создавать свои собственные объекты.

Существуют разные способы создания новых объектов:

  • Определите и создайте один объект, используя литерал объекта.
  • Определите и создайте один объект с ключевым словом new.
  • Определите конструктор объекта, а затем создайте объекты сконструированного типа.

В ECMAScript 5 объект также может быть создан с помощью функции Object.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";
Попробуйте сами »

Два приведенных выше примера делают то же самое. Там нет необходимости использовать new Object().
Для простоты, читабельности и скорости выполнения используйте первый (метод литерал объекта).


JavaScript объекты изменяемы (мутабельны)

Объекты являются изменяемыми: они адресуются по ссылке, а не по значению.

Если персона является объектом, следующее утверждение не создаст копию персоны:

var x = person;  // Это не создаст копию персоны.

Объект x не является копией персоны. Он является персоной. И x, и персона - это один и тот же объект.

Любые изменения x также изменят персону, потому что x и персона - это один и тот же объект.

Пример

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 10;           // Это изменит как x.age так и person.age
Попробуйте сами »