Page 174 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 174

ГЛАВА 9

                                         Объ     ект ы      и объ      ект н о ·


                                                о р и е н т р ова н н о е
                                                              и

                                                    r
                                             п р о р а м м и р о ва н и е








          Основы объектов JavaScript мы рассмотрели в главе 3, а теперь пришло время из­
       учить их глубже.
          Как и массивы, объекты в JavaScript - это контейнеры, которые называют агре­
       гатными или комплексными типами данных. У объектов есть два основных отли­
       чия от массивов.
          •  Массивы содержат значения, индексированные в числовой форме; объекты со­
             держат свойства, индексированные строкой или символом.
          •  Массивы упорядочены (элемент arr [ О ]   всегда следует перед arr [ 1 ]   ); объекты
             не упорядочены (вы не можете гарантировать, что свойство obj  .  а расположе­
             но перед obj . Ь).
          Эти различия носят довольно эзотерический (но важный) характер, поэтому да­
       вайте считать свойства тем, что делает объекты по настоящему особенными. Свой­
       ство (property) состоит из ключа (key) (строки или символа) и значения (value). Осо­
       бенными объекты делает то, что вы можете обращаться к свойствам по их ключам.


       П е ребор свойств

          Обычно, если нужно вывести содержимое некоторого контейнера (операция пе­
       ребора), чаще всего используется массив, а не объект. Т е м не менее объекты также
       являются  контейнерами, и они обеспечивают перебор свойств; вам только нужно
       знать об особенностях и возможных сложностях.
          Первое,  что  необходимо  помнить  о  переборе  свойств,  - это  то,  что  порядок
       не гарантируется. Проведя  небольшой эксперимент, вы можете обнаружить, что
       свойства выводятся в том порядке,  в котором они добавляются, и это справедли­
       во для многих реализаций движка  почти  всегда. Тем  не менее JavaScript не дает
       никаких гарантий этому,  и изменение реализации движка в  любой момент может
   169   170   171   172   173   174   175   176   177   178   179