Книга: Выразительный JavaScript
Свойства
Свойства
Мы видели много подозрительных выражений вроде myString.length
(получение длины строки) и Math.max
(получение максимума) в ранних примерах. Эти выражения используют свойства величин. В первом случае, мы получаем доступ к свойству length
(длина) переменной myString
. Во втором — доступ к свойству max
объекта Math
(который является набором функций и переменных, связанных с математикой).
Почти у всех переменных в JavaScript есть свойства. Исключения — null
и undefined
. Если вы попробуете получить доступ к несуществующим свойствам этих не-величин, получите ошибку:
null.length;
// ? TypeError: Cannot read property 'length' of null
Два основных способа доступа к свойствам – точка и квадратные скобки. value.x
и value[x]
получают доступ к свойству value
– но не обязательно к одному и тому же. Разница в том, как интерпретируется x
. При использовании точки запись после точки должна быть именем существующей переменной, и она таким образом напрямую вызывает свойство по имени. При использовании квадратных скобок выражение в скобках вычисляется для получения имени свойства. value.x
вызывает свойство под именем “x”, а value[x]
вычисляет выражение x
и использует результат в качестве имени свойства.
Если вы знаете, что интересующее вас свойство называется “length”, вы пишете value.length
. Если вы хотите извлечь имя свойства из переменной i
, вы пишете value[i]
. А поскольку свойство может иметь любое имя, для доступа к свойству по имени “2” или “Jon Doe” вам придётся использовать квадратные скобки: value[2]
или value["John Doe"]
. Это необходимо даже когда вы знаете точное имя свойства, потому что ни “2”, ни «John Doe» не являются допустимыми именами переменных, поэтому к ним нельзя обратиться при помощи записи через точку.
Элементы массива хранятся в свойствах. Так как имена этих свойств – числа, и нам часто приходится получать их имена из значений переменных, нужно использовать квадратные скобки для доступа к ним. Свойство length
массива говорит о том, сколько в нём элементов. Имя этого свойства – допустимое имя переменной, и мы его знаем заранее, поэтому обычно мы пишем array.length
, потому, что это проще, чем писать array["length"]
.
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- Ключевые свойства форм
- 1.1.5. Свойства и особенности туруслуг и турпродуктов
- Свойства меню Пуск
- Работа с дополнительными свойствами файлов
- Глава 5. Товар и товарная категория. Характеристики и свойства
- Свойства StdErr, StdIn, StdOut
- Дополнительные свойства поля
- Устранение конфликтов имен WSDL с помощью свойства MessageName
- Атрибуты и свойства