САЙТ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ НА РУССКОМ ЯЗЫКЕ
×

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 Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Отладчик JS Подъемный JS Строгий JS Ключевое слово this JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS JSON

JS Формы

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 Cookies

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 Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS или jQuery

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

JS Примеры

JS Примеры JS HTML DOM JS HTML Ввод


JavaScript Определение объекта



В JavaScript объекты - это король. Если вы понимаете объекты, вы понимаете JavaScript.


В JavaScript, почти "всё" бывает объектом.

  • Переключатели могут быть объектами (если они определены с помощью ключевого слова new)
  • Числа могут быть объектами (если они определены с помощью ключевого слова new)
  • Строки могут быть объектами (если они определены с помощью ключевого слова new)
  • Даты - это всегда объекты.
  • Математика - это всегда объекты.
  • Регулярные выражения всегда являются объектами
  • Массивы всегда являются объектами
  • Функции всегда являются объектами
  • Объекты - это всегда объекты.

Все значения JavaScript, кроме примитивов, являются объектами.


JavaScript примитивы

Примитивное значение это значение, не имеющее свойств или методов.

Примитивный тип данных это данные, имеющие примитивное значение.

JavaScript определяет 5 типов примитивных типов данных:

  • string
  • number
  • boolean
  • null
  • undefined

Примитивные значения неизменны (они жестко закодированы и поэтому не могут быть изменены).

if x = 3.14, вы можете изменить значение x, но не можете изменить значение 3.14.

ЗначениеТипКомментарий
"Привет"string"Привет" всегда так "Привет"
3.14number3.14 всегда так 3.14
truebooleantrue всегда так true
falsebooleanfalse всегда так false
nullnull (объект)null всегда так null
undefinedundefinedundefined всегда так 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 использование объекта литерал

Это самый простой способ создать объект 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;  // Это не создаст копию человека.

Объект 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
Попробуйте сами »