Поделиться через


Объект "Object" JScript

Обновлен: Ноябрь 2007

Все объекты JScript, основанные на объекте Object, поддерживают свойства expando, то есть свойства, которые можно добавлять или удалять во время выполнения программы.

Использование объекта "Object"

Эти свойства могут иметь любые имена, включая числа. Имя свойства, которое является простым идентификатором, можно указывать через точку после имени объекта. Пример:

var myObj = new Object();
// Add two expando properties, 'name' and 'age'
myObj.name = "Fred"; 
myObj.age = 53;

Доступ к свойствам объекта можно также получать с помощью оператора индекса []. Этот метод используется в том случае, если имя свойства не является простым идентификатором или имя свойства неизвестно в момент создания сценария. Индексом свойства может служить произвольное выражение (в том числе простой идентификатор), заключенное в квадратные скобки. Перед добавлением к объекту имена всех свойств "expando" в JScript преобразуются в строки.

При использовании оператора индекса объект обрабатывается как ассоциативный массив. Ассоциативный массив — это структура данных, которая динамически связывает произвольные значения данных с произвольными строками. В данном примере добавляются свойства "expando", имена которых не являются простыми идентификаторами.

var myObj = new Object();
// This identifier contains spaces.
myObj["not a simple identifier"] = "This is the property value";
// This identifier is a number.
myObj[100] = "100";

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

Объекты Array содержат особое свойство length, которое изменяется при добавлении новых элементов; объекты, как правило, не имеют свойства "length", даже если для добавления свойств используется оператор индекса.

Обратите внимание на важное различие между двумя способами доступа к свойствам объекта.

Оператор

Имя свойства обрабатывается как

Значение имени свойства

Точка (.)

Идентификатор

Не может обрабатываться как данные

Индекс ([])

Строковый литерал

Может обрабатываться как данные

Это различие становится полезным, если имена свойств неизвестны до времени выполнения (например, при создании объектов на основе ввода пользователя). Чтобы извлекать свойства из ассоциативного массива требуется использовать цикл for ... in.

См. также

Ссылки

Объект Object

Другие ресурсы

Встроенные объекты