@GeraldIstar
Frontend

JavaScript WeakMap: какие способы применения?

Изучал новые плюшки из ES6, и наткнулся на WeakMap. Из того, что я понял, это то, что ключами могут быть только объекты. А вот то, как этот тип данных работает я не понял. А именно про работу сборщика мусора - записи из WeakMap могут уничтожаться сборщиком мусора, в случае если на объект-ключ больше нет ссылок, кроме самого WeakMap'a?
И собственно сабжевый вопрос: где может понадобиться подобная структура?
  • Вопрос задан
  • 2571 просмотр
Решения вопроса 1
// Так можно хранить приватные данные
var Person = (function(){
  var names = new WeakMap;
  function Person(name){
    names.set(this, name);
  }
  Person.prototype.getName = function(){
    return names.get(this);
  };
  return Person;
})();

var person = new Person('Вася');
console.log(person.getName());          // => 'Вася'
for(var key in person)console.log(key); // => только 'getName'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы