Объект является фундаментальным типом данных в языке JavaScript.

Объект - это составное значение: он объединяет в себе набор значений (простых значений или других объектов) и позволяет сохранять и извлекать эти значения по именам.

Объект является неупорядоченной коллекцией свойств, каждое из которых имеет имя и значение.
Имена свойств являются строками, поэтому можно сказать, что объекты отображают строки в значения. Такое отображение строк в значения может называться по-разному: возможно, вы уже знакомы с такой фундаментальной структурой данных, как «хеш», «словарь» или «ассоциативный массив». Однако объект представляет собой нечто большее, чем простое отображение строк в значения.

Помимо собственных свойств объекты в языке JavaScript могут также наследовать свойства от других объектов, известных под названием «прототипы».

Методы объекта - это типичные представители унаследованных свойств, а «наследование через прототипы» является ключевой особенностью языка JavaScript.

Объекты в языке JavaScript являются динамическими - обычно они позволяют добавлять и удалять свойства – но они могут использоваться также для имитации статических объектов и «структур», которые имеются в языках программи- рования со статической системой типов. Кроме того, они могут использоваться (если не учитывать, что объекты отображают строки в значения) для представления множеств строк.

Любое значение в языке JavaScript, не являющееся строкой, числом, true, false, null или undefined, является объектом. И даже строки, числа и логические значения, не являющиеся объектами, могут вести себя как неизменяемые объекты.

Oбъекты являются изменяемыми значениями и операции с ними выполняются по ссылке, а не по значению. Если переменная x ссылается на объект, и выполняется инструкция var y = x;, в переменную y будет записана ссылка на тот же самый объект, а не его копия. Любые изменения, выполняемые в объекте с помощью переменной y, будут также отражаться на переменной x.

_____________________________________________________________

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

Свойство имеет имя и значение.

Именем свойства может быть любая строка, включая и пустую строку, но объект не может иметь два свойства с одинаковыми именами.
Значением свойства может быть любое значение, допустимое в языке JavaScript, или (в ECMAScript 5) функция чтения или записи (или обе).

___________________________________

В дополнение к именам и значениям каждое свойство имеет ряд ассоциированных с ним значений, которые называют атрибутами свойства:

  • Атрибут writable определяет доступность значения свойства для записи.
  • Атрибут enumerable определяет доступность имени свойства для перечисления в цикле for/in.
  • Атрибут configurable определяет возможность настройки, т. е. удаления свойства и изменения его атрибутов.

До появления стандарта ECMAScript 5 все свойства в объектах, создаваемые программой, доступны для записи, перечисления и настройки. В ECMAScript 5 предусматривается возможность настройки атрибутов ваших свойств.

_____________________________________________________

В дополнение к свойствам каждый объект имеет три атрибута объекта:

  • Атрибут prototype содержит ссылку на другой объект, от которого наследуются свойства.
  • Атрибут class содержит строку с именем класса объекта и определяет тип объекта.
  • Флаг extensible указывает на возможность добавления новых свойств в объект.

_________________________________________________________________

Три обширные категории объектов в языке JavaScript и два типа свойств:

  • Объект базового языка - это объект или класс объектов, определяемый спецификацией ECMAScript. Массивы, функции, даты и регулярные выражения (например) являются объектами базового языка.

  • Объект среды выполнения - это объект, определяемый средой выполнения (такой как веб-броузер), куда встроен интерпретатор JavaScript. Объекты HTMLElement, представляющие структуру веб-страницы в клиентском JavaScript, являются объектами среды выполнения. Объекты среды выполнения могут также быть объектами базового языка, например, когда среда выполнения определяет методы, которые являются обычными объектами Function базового языка JavaScript.

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

  • Собственное свойство – это свойство, определяемое непосредственно в данном объекте.

  • Унаследованное свойство – это свойство, определяемое прототипом объекта.


<<< back

results matching ""

    No results matching ""