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

for ( l e t    и  of  userRoles . keys ( ) )
           console . l og ( u . n am ) ;
                           e
                            s
                                 e
       for ( l et  r  of  userRole . valu s ( } )
           console . log ( r )   ;
                                   e
       for ( l et  ur  of  userRoles . entri s ( ) )

           console . log ( ' $ { ur [ О ]  . name } :  $ { ur [ 1 ]   } ' ) ;
       1 1   обратите  внимание :  чтобы  сделать  этот  перебор  еще  более
       1 1   естественным,  мы  можем  использовать  деструктуризацию:
       for ( l e t   [u,  r ]   of  userRoles . entries ( ) )
                              e
                     g
           console . l o ( ' $  { u  . n am } :  $ { r } ' ) ;
       / /  метод  entries ()   - это  стандартный  итератор  для  отображений,  так
       / /  вы  можете  сократить  предыдущий  пример :
       for ( l e t   [u,  r]  of  userRoles )
                              e
                     g
           console . l o ( ' $ { u  . n am ) :  $ { r }  ' ) ;
          Если вместо итерируемого объекта необходим массив, вы можете использовать
       оператор расширения.

        [ . . . userRoles . v alues ( ) ]  ;     / /  [  "User",  "User ",  "Admin "  ]
          Чтобы удалить одиночный элемент из отображения, используйте метод delete  ) (  .
               s
       userRole . d elete ( u 2 ) ;
       userRoles . s i z e ;      1 1   2
          Наконец, если вы хотите  удалить  все элементы из отображения, то можете сде­
                                     (
       лать это, используя метод clear  ) .
               s
       userRole . c lear ( ) ;
       userRol s . s i z e ;      1 1   о
              e
                               н
       Слабые отображе и я
          Объект WeakМap идентичен объекту Мар, кроме следующего.
          •  Его ключи должны быть объектами.

          •  Ключи в WeakМap допускают сборку мусора.
          •  Объект WeakМap не может быть перебран или очищен.
          Обычно JavaScript хранит объект в памяти, пока где-нибудь есть ссылка на него.
       Например, если у вас будет объект, который является ключом в  Мар, то JavaScript
       будет хранить этот объект в памяти, пока объект Мар существует. С WeakМap все не
       так. Из-за этого объект WeakMap не может быть  перебран  (есть слишком большая



                                                            Слабые отображения   1 9 3
   187   188   189   190   191   192   193   194   195   196   197