Показать сообщение отдельно
  #642 (permalink)  
Старый 05.01.2015, 21:02
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ruslan_xDD, в простом Object в качестве ключа может выступать только строка, а в Map или Set любое значение, включая объекты и это просто ну мега круто, юзаю уже больше года - не нарадуюсь.

Например, на сервере (в ноде), нужно добавлять авторизованных юзеров в специальную таблицу и иметь быстрый способ проверки:

// WeakMap выбран потому, чтобы при разрыве соединения клиента с сервером,
// оно автоматически удалилось бы и из map
var map = new WeakMap(); 

createServer(function (req, res) {
  ...

  // req - это специальный объект-подключения юзера, экземпляр класс ReadStream
  var user = map.get(req);

  if (!user ) {
    map.set(req, {
      sessionId: ...,
      ...
    });
  }
});


Цитата:
Даже если понадобится, то вряд ли заюзаю, ибо поддержка браузерами пока что плохая, и это ещё на несколько лет затянется.
Сейчас абсолютно все актуальные браузеры поддерживают: Map, WeakMap, Set (а вот WeakSet есть не везде), на ноде также в режиме --harmony всё работает.

Для фич вроде let или arrow function давно использую транслятор и сейчас абсолютно все мои разработки на ES6, а ES5 хочу забыть как страшный сон.

https://github.com/6to5/6to5

***

Конечно, многие вещи можно было делать и в ES5/3, и кажется зачем учить новое если есть старое, но это не правильный подход, ибо ES6 позволяет делать вещи объективно лучше и проще, а чтобы понять "зачем эти фичи", то нужно просто начать их использовать и понимание придёт.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 05.01.2015 в 21:34.
Ответить с цитированием