Аксессоры

Описание, примеры

Операторы-аксессоры предоставляют доступ к свойствам объекта.

Объект представляет собой обычный ассоциативный массив (словарь, хэш). Ключами этого массива являются имена свойств и методов (свойств, являющихся ссылкой на функцию).

Есть два способа доступа к свойствам: запись с точкой или с квадратными скобками.

Запись с точкой

Пример: запись с точкой
get = object.property // получить свойство property
object.property = set  // записать свойство property

Для записи с точкой название свойства должно быть правильным javascript-идентификатором, то есть последовательностью английских букв и цифр, включая подчеркивание "_" и знак доллара "$", которая не начинается с числа.
Например, object.$1 - корректный идентификатор, а object.1 - нет.

Пример:
document.createElement('pre')

В этом примере из объекта document получено свойство createElement, которое является ссылкой на функцию. Эта функция вызвана с аргументом 'pre' в контексте объекта document.

Запись с квадратными скобками

Пример: квадратные скобки
get = object[property_name] // получить
object[property_name] = set  // записать

Здесь property_name - строка. Она не обязательна является правильным идентификатором. Может быть любое значене, включая цифры и даже " " (пробел).

Пример:
document['createElement']('pre')

Этот пример делает в точности то же самое, что и аналогичный предыдущий.

Использование eval

В старых javascript-скриптах иногда используется доступ к свойствам объекта через eval, в то время как гораздо быстрее и правильнее использовать запись с квадратными скобками.

Например, часто попадается такая запись:

Пример: устаревшая запись
x = eval('document.form_name.' + strFormControl + '.value')

Следует максимально избегать вызова eval. Лучше использовать скобочную запись:

Пример: скобочная запись
x = document.form_name[strFormControl].value

См. также