Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

• В строгом режиме объект

arguments
(раздел 8.3.2) в функции хранит статическую копию значений, переданных функции. В нестрогом режиме объект
arguments
ведет себя иначе - элементы массива
arguments
и именованные параметры функции ссылаются на одни и те же значения.

• В строгом режиме возбуждается исключение

SyntaxError
, если оператору
delete
передать неквалифицированный идентификатор, такой как имя переменной, функции или параметра функции. (В нестрогом режиме такое выражение
delete
не выполнит никаких действий и вернет
false
.)

• В строгом режиме попытка удалить ненастраиваемое свойство приведет к исключению

ТуреЕггог
. (В нестрогом режиме эта попытка просто завершится неудачей и выражение
delete
вернет
false
.)

• В строгом режиме попытка определить в литерале объекта два или более свойств с одинаковыми именами считается синтаксической ошибкой. (В нестрогом режиме ошибка не возникает.)

• В строгом режиме определение двух или более параметров с одинаковыми именами в объявлении функции считается синтаксической ошибкой. (В нестрогом режиме ошибка не возникает.)

• В строгом режиме не допускается использовать литералы восьмеричных целых чисел (начинающихся с 0, за которым не следует символ х). (В нестрогом режиме некоторые реализации позволяют использовать восьмеричные литералы.)

• В строгом режиме идентификаторы

eval
и
arguments
интерпретируются как ключевые слова, и вы не можете изменить их значения. Вы сможете присвоить значения этим идентификаторам, объявив их как переменные, использовав их в качестве имен функций, имен параметров функций или идентификаторов блока catch.

• В строгом режиме ограничивается возможность просмотра стека вызовов. Попытки обратиться к свойствам

arguments.caller
и
arguments.callee
в строгом режиме возбуждают исключение
ТуреЕrror
. Попытки прочитать свойства
caller
и
arguments
функций в строгом режиме также возбуждают исключение
ТуреЕггог
. (Некоторые реализации определяют эти свойства в нестрогих функциях.)

5.8. Итоговая таблица JavaScript-инструкций

В этой главе были представлены все инструкции языка JavaScript. В табл. 5.1 содержится перечень этих инструкций с указанием синтаксиса и назначения каждой из них.

6

Объекты

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

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

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

Любое значение в языке JavaScript, не являющееся строкой, числом,

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

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

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

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

• Атрибут

writable
определяет доступность значения свойства для записи.

• Атрибут

enumerable
определяет доступность имени свойства для перечисления в цикле
for/in
.

• Атрибут

configurable
определяет возможность настройки, т.е. удаления свойства и изменения его атрибутов.

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

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

• Атрибут

prototype
содержит ссылку на другой объект, от которого наследуются свойства.

• Атрибут

class
содержит строку с именем класса объекта и определяет тип объекта.

• Флаг

extensible
(в ECMAScript 5) указывает на возможность добавления новых свойств в объект.

Поближе с прототипами и механизмом наследования свойств мы познакомимся в разделах 6.1.3и6.2.2,а более детальное обсуждение всех трех атрибутов объектов вы найдете в разделе 6.8.

Поделиться:
Популярные книги

Том 2. Советская литература

Луначарский Анатолий Васильевич
2. Собрание сочинений в восьми томах
Документальная литература:
критика
5.00
рейтинг книги
Том 2. Советская литература

Неудержимый. Книга VI

Боярский Андрей
6. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга VI

Гражданская война 1918-1921 гг. — урок для XXI века

Кара-Мурза Сергей Георгиевич
Научно-образовательная:
политика
5.00
рейтинг книги
Гражданская война 1918-1921 гг. — урок для XXI века

Тайные силы в истории России

Бегунов Юрий Константинович
Документальная литература:
публицистика
5.00
рейтинг книги
Тайные силы в истории России

Последний реанорец. Том I и Том II

Павлов Вел
1. Высшая Речь
Фантастика:
фэнтези
7.80
рейтинг книги
Последний реанорец. Том I и Том II

Ночные всадники. Нарушители закона. Чертово болото

Кэллэм Ридгуэлл
Приключения:
вестерны
6.25
рейтинг книги
Ночные всадники. Нарушители закона. Чертово болото

Форма. Стиль. Выражение

Лосев Алексей Федорович
Научно-образовательная:
философия
5.00
рейтинг книги
Форма. Стиль. Выражение

Эйнштейн. Его жизнь и его Вселенная

Айзексон Уолтер
Документальная литература:
биографии и мемуары
5.50
рейтинг книги
Эйнштейн. Его жизнь и его Вселенная

Хроники Элении (сборник)

Эддингс Дэвид
Шедевры фантастики
Фантастика:
фэнтези
7.86
рейтинг книги
Хроники Элении (сборник)

Кодекс Охотника. Книга XVIII

Винокуров Юрий
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XVIII

Кто изобрел современную физику? От маятника Галилея до квантовой гравитации

Горелик Геннадий
Научно-образовательная:
история
физика
6.25
рейтинг книги
Кто изобрел современную физику? От маятника Галилея до квантовой гравитации

Civilization

Коллингвуд Виктор
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Civilization

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Ткущая. Обманутые секунды

Тарасова Анна
3. Ткущая
Любовные романы:
любовно-фантастические романы
8.27
рейтинг книги
Ткущая. Обманутые секунды