Аксессоры
Описание, примеры
Операторы-аксессоры предоставляют доступ к свойствам объекта.
Объект представляет собой обычный ассоциативный массив (словарь, хэш). Ключами этого массива являются имена свойств и методов (свойств, являющихся ссылкой на функцию).
Есть два способа доступа к свойствам: запись с точкой или с квадратными скобками.
Запись с точкой
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